日期:2014-05-17  浏览次数:20496 次

如何清除掉GridView选中状态

如图所示,通过GridView从数据库中提取数据到界面,并添加一列模板列ItemTemplate,其中添加的Button控件(最后一列),用于单击该列就将该行的数据在页面其他处输出,同属通过GridView的SelectedRowStyle属性使选中行样式与其他行样式不同,现在面临的问题是我想通过刷新页面的方式使GridView恢复到原来状态(刚加载页面时所有行都处于未选中的状态),但无论怎么刷新页面上一次选中的行都处于选中状态,除非关掉页面重新加载,通过调试发现,每次刷新页面,系统会自动默认触发GridView选中行的事件GridView_SelectedIndexChanged(object sender, EventArgs e),如何才能清除掉GridView所有行选中的状态,网上说有GridView.ClearSlection()方法,但我试过没用这个方法,求大神赐教如何才能清除掉GridView选中状态,或其他能够实现该功能(刷新时不触发GridView_SelectedIndexChanged事件)的方法也可以。

------解决方案--------------------
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent()
{
this.GridView_SelectedIndexChanged -= new System.Web.UI.WebControls.DataGridItemEventHandler(this.GridView_SelectedIndexChanged);
}
GridView_SelectedIndexChanged(object sender, EventArgs e)
{
this.GridView_SelectedIndexChanged += new System.Web.UI.WebControls.DataGridItemEventHandler(this.GridView_SelectedIndexChanged);
}
尝试

------解决方案--------------------
  protected override void OnInit(EventArgs e)
    {
        InitializeComponent();
        base.OnInit(e);
    }
    private void InitializeComponent()
    {
        this.GridView.SelectedIndexChanged -= new EventHandler(this.GridView_SelectedIndexChanged);
    }