我在代码文件中将Formview绑定到通用列表。现在,在编辑记录时,我希望从FormViewUpdateEventArgs事件处理程序方法的ItemUpdating参数中访问Keys和NewValues。

从我到目前为止在Internet上尝试和搜索的内容来看,我知道更新的值仅在Formview在标记页面上设置了数据源控件的情况下可用,否则它们将为null。这是真的?

其次,此刻我将sender对象转换为formview,并通过使用FindControl方法来查找和检索控件中存在的值来分别填充每个对象属性。这是执行此任务的最佳方法吗?

例如,这就是我正在做的atm:

FormView currentForm = (FormView)sender;
ListObject.ID = new Guid(((HiddenField)(currentForm.FindControl("hdnID"))).Value);
ListObject.Name = ((TextBox)(currentForm.FindControl("txtName"))).Text;


感谢您的帮助伙计们!

最佳答案

根据您的操作,我建议您不要使用FormView。在使用数据源时,FormView非常出色,但是在按原样处理手动绑定数据,基本上覆盖并手动构建表单时,会失败,并且仅创建HTML表单和ASP.Net服务器端控件会更简单。

FindControl是一项昂贵的操作,并且可能变得笨拙。在将数据循环期间将值简单地分配给服务器端控件将更快。

根据建议,也可以使用ObjectDataSource并将数据以这种方式绑定到FormView。

关于c# - 使用手动数据绑定(bind)在Formview中检索键和NewValues,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3330072/

10-11 10:41