【问题标题】:Retrieving keys and NewValues within a Formview with manual data binding使用手动数据绑定在 Formview 中检索键和 NewValue
【发布时间】: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


【解决方案1】:

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

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

或者按照建议,使用ObjectDataSource 并以这种方式将您的数据绑定到 FormView。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多