【发布时间】:2011-03-20 19:02:55
【问题描述】:
我在代码文件中绑定了一个 Formview 到一个通用列表。现在,在编辑记录时,我希望通过 ItemUpdating 事件处理方法的 FormViewUpdateEventArgs 参数访问 Keys 和 NewValues。
从我目前在互联网上尝试和搜索的内容来看,我了解到更新的值只有在 Formview 设置为标记页面上的数据源控件时才可用,否则它们将为空。这是真的吗?
其次,此时我将sender 对象转换为formview,并使用FindControl 方法单独填充每个对象属性,以查找和检索控件中存在的值。这是完成这项任务的最佳方式吗?
举个例子,这就是我在 atm 做的事情:
FormView currentForm = (FormView)sender;
ListObject.ID = new Guid(((HiddenField)(currentForm.FindControl("hdnID"))).Value);
ListObject.Name = ((TextBox)(currentForm.FindControl("txtName"))).Text;
感谢小伙伴们的帮助!
【问题讨论】:
-
FindControl 总是“不是最好的方式”做事,因为它有点贵。你真的应该把它作为最后的手段。在您的情况下,我认为您应该真正考虑使用 ObjectDataSource 而不是直接在代码中直接绑定它
标签: c# asp.net data-binding formview findcontrol