asp.net - 当数据绑定(bind)控件被绑定(bind)两次时,如何避免重复项?

标签 asp.net data-binding

在这种情况下如何避免重复绑定(bind)项目:

页面上有一个数据绑定(bind)控件(在这种情况下是 DropDownList,尽管我认为这并不重要)。它的 AppendDataBoundItems 设置为“true”。在代码中的某处,设置了 DataSource 并调用了 DataBind。所以这个控件是明确绑定(bind)的。

你有一堆其他的东西要绑定(bind)在页面上,所以你调用 Page.DataBind。

您的数据绑定(bind)控件现在包含重复项。它是 (1) 显式绑定(bind)的,然后 (2) Page.DataBind 再次绑定(bind)它。由于 AppendDataBoundItems 为真,第二个绑定(bind)附加到第一个绑定(bind),您最终得到双倍的项目。

几个限制:

  • 对控件上的 DataBind 的显式调用是通过一些集中的代码完成的,并且更改起来会很痛苦。
  • 我真的需要将页面的其余部分绑定(bind)在一起(通过 Page.Databind()),因为有太多其他数据绑定(bind)元素需要单独完成,而无需编写大量单独的调用。

  • 我需要一种方法,例如... Page.DataBindExceptIfTheyHaveAlreadyBeenBoundDuh()

    最佳答案

    执行 Control.DataBind() 后关闭 AppendDataBoundItems。然后您 Page.DataBind() 不会再次附加项目。

    DropDownList.DataSource = Data;
    DropDownList.DataBind();
    DropDownList.AppendDataBoundItems = false;
    

    关于asp.net - 当数据绑定(bind)控件被绑定(bind)两次时,如何避免重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2179363/

    相关文章:

    asp.net - 使用 Excel VBA 打开 IE 并与 Web 表单交互

    jquery - Bootstrap 样式不适用于打印

    c# - 在设计 View 中使用 ASP.NET 时,Visual Studio 2012 SP3 更改链接 href

    c# - ListBox ItemsSource 动态过滤器 WPF

    c# - 将多个 DataBindings 添加到 Winforms 标签

    asp.net - 在 ASP.NET MVC 中提供无扩展名的静态文件;得到 404s

    c# - 我可以在没有管理员权限的情况下保存到哪个存储库?

    android - 如何通过集成数据绑定(bind) android 来更改我现有的代码

    wpf - 如何在选择列表框中的项目时打开新的用户控件?

    javascript - knockout : changing options in select list without clearing value in view-model