2011-10-07 45 views
3

我有一個支持更新記錄的gridview。 我有一個編輯模板和一個替代文本框的Dropdownlist(ddl)。 DDL綁定到數據源,我需要附加一個值(該字段的當前值到DDL)。這使用戶可以選擇當前值以及DDL中的替代值。ASP.NET Gridview在綁定之前將值附加到編輯模板控件

問題是我需要DDL綁定('<%#綁定(「元素」)%>'),所以更新功能的作品,但我需要綁定它的字段的當前值後附加到現在發生在RowDataBound事件期間的DDL。

簡而言之,我需要在綁定之前獲得DDL字段的當前值,以便更新工作(否則,我會得到一個DDL不包含谷值錯誤)。什麼是最早的點/事件,我可以檢索一個字段的值(在點擊編輯按鈕後)在GridView中,所以我可以在綁定發生之前做一些管道工作?

幫助?

回答

0

有趣的問題!您可以處理RowEditing事件,當該行進入「編輯模式」(當單擊編輯按鈕時),該事件被觸發。然後,只需使用NewEditIndex屬性即可找到您即將編輯的行。

所以,這樣的事情在後面的代碼:

protected void myGridView_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    // the row you're editing 
    int rowToEdit = e.NewEditIndex; 

    // The numeric ordinal of your column where your DropDownList is. I just picked 5 at random 
    int ddlColumnIndex = 5; 

    // Get the DropDownList you're interested in modifying 
    DropDownList myDDL = (DropDownList)myGridView.Rows[rowToEdit].Cells[ddlColumnIndex].FindControl("myDDL"); 

    // Do whatever processing you need to do here 
} 
+0

謝謝!這就是訣竅! – user937036

+0

@ User937036:很高興我可以幫忙=)隨意點擊這個答案旁邊的空白「複選標記」,以表明它對你有效。你可以看到這是如何工作的:[接受答案](http:// meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) – jadarnel27