2010-01-06 92 views
4

在GridView中,我們使用了一個編輯按鈕。一旦編輯按鈕被點擊編輯模板中的控件將顯示在同一行中的更新按鈕。該行有兩個dropdownlist控件。ASP.NET GridView EditTemplate和查找控件

流程:

控制:d1和d2

D1使用的SqlDataSource用於項目顯示:正常工作。

D2使用代碼隱藏代碼加載基於D1所選值的項目:不工作

如何找到在編輯模板控制爲D2顯示項目的價值?

回答

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 
     } 
    } 
} 
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. 
    } 
    }