我在asp.Net中有一个数据绑定ListView。我在aspx页面中使用了ItemTemplate和SelectedItemTemplate。
在.cs页面中我有这个。我已经通过逐步执行代码来验证if语句仅在应该的时候求值为true,并且设置了所选索引。但是,HTML输出就像所有项目都使用ItemTemplate一样。
int indexCounter = 0;
protected void lvProducts_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
if (((DataRowView)e.Item.DataItem)["ID"].ToString() == Request.QueryString["id"])
{
lvProducts.SelectedIndex = indexCounter;
}
indexCounter++;
}
}
有更好的方法吗?
答案 0 :(得分:3)
查看此post
“在DataBinding工作之后的任何地方设置SelectedIndex,你只是没有得到SelectedItemTemplate。为此你要重新绑定数据;或者重新实现ListViewItem上的SelectedItemTemplate。一定要先清除ListViewItem.Controls集合!”