Listview只获得第一项

时间:2015-04-20 17:03:18

标签: asp.net listview

我有一个ListView并且它在其中检索了3个项目,然后在检索Data并将其放入ListView时我有这个代码

protected void car_listview_DataBound(object sender, EventArgs e)
{
        var lbl = car_listview.Items[0].FindControl("lbl1") as Label;
        lbl.Text = "Car";
}

然而我遇到的问题是它只会改变第一项“lbl”而不是第二项或第三项。

我不能使用Eval,因为我打算在IF语句中显示lbl.Text属性中的不同值,这是他们修复方法的方法吗?

1 个答案:

答案 0 :(得分:1)

当整个控件将数据绑定到控件时,

ListView.DataBound事件将触发。所以每ListView只发射一次。如果要更改每个项目的Label,请遍历ListView.Items集合并更改其中的值,或使用每个数据项触发的ListView.ItemDataBound事件。您可以通过事件处理程序中的参数访问插入的项目。

- Edit--
在处理程序中查找标签的代码,尝试这样的事情:

protected void car_listview_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    if (e.Item.ItemType == ListViewItemType.DataItem)
    {
        Label _label = (Label)e.Item.FindControl("lbl");
        if (_label != null)
        {
            //code here
        }
    }
}