我有一个支持更新记录的gridview。 我有一个带有Dropdownlist(ddl)的编辑模板,用于替换文本框。 DDL绑定到数据源,我需要附加一个值(该字段的当前值到DDL)。这使用户可以从DDL中选择当前值和备用值。
问题是我需要绑定DDl('<%#Bind(“Element”)%>')因此更新函数可以工作但我需要在字段的当前值之后绑定它已附加到现在在RowDataBound事件期间发生的DDL。
简而言之;我需要在Bind之前获取附加到DDL的字段的当前值,以便我的更新工作(否则我得到一个DDL不包含vale错误)。什么是最早的点/事件,我可以在gridview中检索字段的值(在单击编辑按钮之后),这样我可以在Binding发生之前做一些管道工程?
帮助?
答案 0 :(得分: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
}