根据这个文档,我添加了一个 gridview 并实现了 onupdate。 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowediting.aspx
我打开页面并单击编辑,这将设置 editinex 并重新绑定:
protected void rowEdit(object sender, GridViewEditEventArgs e)
{
EditProducts.EditIndex = e.NewEditIndex;
EditProducts.DataBind();
}
在第三列中,我更改了值(假设它是“hello”,我将其更改为“goodbye”)。然后点击“更新”。(第一列是用于编辑和删除或更新和取消的按钮列,第二列显示 id)。
调用 onrowupdate 方法,我尝试根据 msdn 中的示例代码(第二个数据列)获取第 3 列的值:
protected void RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = EditProducts.Rows[e.RowIndex];
String previousValue= ((TextBox)(row.Cells[2].Controls[0])).Text;
String actualValue = Request.Params["EditProducts$ctl02$ctl03"];
字符串 previousValue 不是“再见”;它仍然是“你好”
在 Firefox 中,我可以看到“再见”已提交,但 rowUpdating 中 TextBox 控件的值是“hello”。必须从视图状态中错误地获取。
所以我添加了获取 request.params 的实际值,并将其设置为“再见”。
我有以下问题:
msdn上提供的代码错了吗?
TextBox 控件不应该代表提交时输入包含的值的 Text 属性吗?