ASP.NET GridView回发未设置发布的控件的值

时间:2020-03-06 14:52:54  来源:igfitidea点击:

当添加某种复杂性的EditItemTemplate(一个模板中的多个字段),然后从RowUpdating事件中解析控件时,用户手动输入的控件没有任何值。我的猜测是绑定数据时发生了什么事,但是我有一些实例,只需在代码中简单地向控件中添加属性和属性,就可以启动行为并删除该代码,从而使代码正常工作。作为一种变通办法,我可以Request(controlname.UniqueId)来获取它的值,但这确实是一个hack。

编辑
当我像这样访问值时

TextBox txtValue = gvwSettings.SelectedRow.FindControl("txtValue") as TextBox;

找到文本框,但.Text不是用户输入。

解决方案

我们应该能够使用GridViewUpdateEventArgs来检索输入的值,例如:

TextBox txtValue = gvwSettings.SelectedRow.FindControl("txtValue") as TextBox;

我以前使用过这种语法,它就像一个魅力。

我们是否关闭了ViewState?
我们是否以编程方式在模板中添加了控件?如果是这样,我们是否在正确的阶段创建了它们?

将回发后数据绑定移动到Page_Init