我用datalist显示数据并进行编号,为什么最后一个的编号却不显示出来

代码如下:
for(int i=0;i<datalist.items.count;i++)
{
((label)datalist.items[i].findcontrol("label1")).text=i;
}

可能是因为你的循环没有处理最后一个元素,循环结束时 i 的值等于 datalist.items.count,而此时最后一个元素的编号还没有被设置。

你可以把循环条件改成 i < datalist.items.count,同时在循环结束后再手动给最后一个元素设置编号,代码如下:

for (int i = 0; i < datalist.items.count; i++)
{
    ((label)datalist.items[i].findcontrol("label1")).text = i.ToString();
}

// 设置最后一个元素的编号
if (datalist.items.count > 0)
{
    ((label)datalist.items[datalist.items.count - 1].findcontrol("label1")).text = datalist.items.count.ToString();
}

这样就能保证最后一个元素的编号也能正确显示了。