RadComboBox:在按需加载时使用客户端项目模板滚动后单击处理程序丢失

时间:2017-04-04 19:35:14

标签: telerik radcombobox

我在带有Web服务的按需加载(懒惰)模式下使用RadComboBox。

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

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

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

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

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

有没有更好的解决方案,然后使用onclick属性?

1 个答案:

答案 0 :(得分:0)

实际上它附加到list元素的innerHtml,但这实际上是重新移动并重新添加list元素下的每个节点。

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

每次将新项目添加到列表后都会调用

itemsRequested,因此每次重新创建DOM后都会调用它。