2011-10-07 53 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