我在带有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属性?
答案 0 :(得分:0)
实际上它附加到list元素的innerHtml
,但这实际上是重新移动并重新添加list元素下的每个节点。
我通过分配我的点击处理程序并在itemsRequested
客户端处理程序中进行数据绑定来解决这个问题,迭代使用RadCombobBox客户端对象的get_items()
方法获得的整个项目列表。
itemsRequested
,因此每次重新创建DOM后都会调用它。