2010-07-25 54 views
2

我有一个Formview绑定在代码文件中的通用列表。现在,在编辑记录时,我希望从ItemUpdating事件处理程序方法的FormViewUpdateEventArgs参数中访问Keys和NewValues。使用手动数据绑定检索Formview中的键和NewValue

从我试过并通过互联网搜索截至目前,我已经知道,只有当Formview在标记页面上设置了数据源控件时,更新后的值才可用,否则它们将为null 。这是真的?其次,在这一刻,我将sender对象转换为formview,并使用FindControl方法单独填充每个对象属性,以查找和检索控件中存在的值。这是完成这项任务的最佳方式吗?

作为一个例子,这是我在做什么大气压:

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

感谢您的帮助小伙子们!

+1

FindControl始终“不是最好的方式”去做事情,因为它很昂贵。你应该真的使用它作为最后的手段。在你的情况下,我认为你应该考虑使用ObjectDataSource,而不是直接在你的代码中绑定它 – 2010-11-01 18:25:51

回答

0

根据你在做什么我会建议你不是使用FormView。 FormView在使用数据源时非常出色,但在处理手动绑定数据时会失败,基本上覆盖并手动构建表单,而且创建HTML表单和ASP.Net服务器端控件会更简单。

FindControl是一个昂贵的操作,可以变得笨拙。在将数据循环到服务器端控件的过程中,简单地分配值会更快。

或者如建议的那样,使用ObjectDataSource并以这种方式将数据绑定到FormView。