【问题标题】:RadComboBox: click handlers lost after scrolling when using a client item template with load on demandRadComboBox:使用按需加载的客户端项目模板时,单击处理程序在滚动后丢失
【发布时间】:2017-08-30 04:20:19
【问题描述】:

我在按需加载(惰性)模式下使用 RadComboBox 和 Web 服务。

我正在使用这种形式的客户端项目模板:<input type='checkbox' id='cb_#= Value #'/><span>#= Text #</span>(在每个项目的文本之前添加一个复选框)

在此 RadComboBox 的 itemDataBound 客户端处理程序中,我正在检索特定项目的 DOM 元素和嵌套复选框的 DOM 元素,并为它们中的每一个添加一个单击处理程序函数(使用 jquery 的$(element).click(function() {}))。

点击处理程序功能正常工作,直到我将项目滚动到视图之外然后再滚动,之后不再调用点击处理程序(复选框选择也丢失了)。

我想这是因为代表项目的 DOM 元素在滚动进出视图时会重新创建。但是 itemDataBound 事件只引发一次,并且当项目在视图中回滚时不会再次引发。

我能想到的唯一解决方法是在 HTML 中使用 onclick 属性并从那里引用一个全局函数,但这很难看。

有没有比使用 onclick 属性更好的解决方案?

【问题讨论】:

    标签: telerik radcombobox


    【解决方案1】:

    它实际上做了什么,它附加到列表元素的innerHtml,但这实际上是重新移动和重新添加列表元素下的每个节点。

    我通过分配我的点击处理程序并在itemsRequested 客户端处理程序中执行数据绑定来解决此问题,迭代使用 RadCombobBox 客户端对象的get_items() 方法获得的整个项目列表。

    itemsRequested 每次在将新项目添加到列表后以及每次重新创建 DOM 后都会调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-08
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      相关资源
      最近更新 更多