ASP.NET GridView EditTemplate并查找控件

时间:2010-01-06 05:59:52

标签: c# asp.net gridview

在GridView中,我们使用了一个编辑按钮。单击编辑按钮后,编辑模板中的控件将与更新按钮显示在同一行中。该行有两个下拉列表控件。

流程:

控制:d1和d2

d1正在使用sqldatasource进行项目显示:工作正常。

d2正在使用代码隐藏代码根据d1中的选定值加载项目:不工作

如何在编辑模板中找到控件以显示d2的项目值?

2 个答案:

答案 0 :(得分:6)

我得到了答案。

protected void GridView1_PreRender(object sender, EventArgs e)
 {
  if (this.GridView1.EditIndex != -1)
   {
     Button b = GridView1.Rows[GridView1.EditIndex].FindControl("Button1") as Button;
     if (b != null)
      {
      //do something
      }
   }
 }

答案 1 :(得分:3)

切换到编辑模式时,需要重新绑定网格才能生效。

因此,您可以使用'RowDataBound'事件。

  void MyGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  {
    if(e.Row.RowType == DataControlRowType.DataRow
            && e.Row.RowIndex == MyGridView.EditIndex)
    {
      DropDownList d1 = e.Row.FindControl("d1") as DropDownList;
      if(d1 == null) return;
      //Now you have the drop down. Use it as you wish.
    }
  }