none
ASP.NET 在GridView的RowCommand事件里设置SelectIndex无法触发SelectedIndexChanged事件 RRS feed

  • 问题

  • 我想通过编程方式实现选中某行,在GridView中加了一列
    <asp:ButtonField ButtonType="Button" DataTextField="EmployeeID" HeaderText="ID" SortExpression="Employee" />

    然后添加了RowCommand事件处理:

    protected void gridEmployees_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            Int32 Index = Int32.Parse(e.CommandArgument.ToString());

            gridEmployees.SelectedIndex = Index;
        }

    这样做确实可以在单击某行的这个Button时选中这行,但是却没有触发SelectedIndexChanged事件。

    如果不用编程方式,直接把这个ButtonField的CommandName设成Select,就可以触发SelectedIndexChanged事件。

    这是为何?

    2014年6月24日 6:45

答案

  • 您好,
    如果程式去 Assign gridEmployees.SelectedIndex ,您需要自行呼叫 SelectedIndexChanged事件。
    Int32 Index = Int32.Parse(e.CommandArgument.ToString());
    gridEmployees.SelectedIndex = Index;
    gridEmployees_SelectedIndexChanged(this.gridEmployees, new EventArgs());

    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已标记为答案 Linford Xu 2014年6月30日 7:25
    2014年6月24日 10:03