我有一个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属性中的不同值,这是他们修复方法的方法吗?
答案 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
}
}
}