选择后为什么我的ListView SelectedItemTemplate不显示?

时间:2010-06-08 18:05:22

标签: c# .net asp.net

我在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++;
        }
    }

有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

查看此post

“在DataBinding工作之后的任何地方设置SelectedIndex,你只是没有得到SelectedItemTemplate。为此你要重新绑定数据;或者重新实现ListViewItem上的SelectedItemTemplate。一定要先清除ListViewItem.Controls集合!”