我有一個RadTreeView的動態水平和可檢查節點根據條件。某些級別可能沒有可檢查節點,某些可檢查節點或所有可檢查節點。Telerik RadTreeView OnClientNode檢查與IE9兼容性問題+
我使用OnClientNodeChecked事件將已檢查節點的ID保留在隱藏字段中以備將來使用,並更新已檢查節點計數器。
每次用戶單擊節點旁邊的複選框時都會觸發此事件。現在,如果用戶移動並點擊複選框,則所有可檢查的子節點應該被選中/取消選中。
這裏是TreeView控件:
<telerik:RadTreeView RenderMode="Lightweight" runat="Server" ID="treeAccounts" EnableDragAndDrop="false" EnableDragAndDropBetweenNodes="false" Skin="Vista" CheckBoxes="True"
OnClientLoad="initializeSelectedNodes" OnClientNodeChecked="treeNodeChecked">
</telerik:RadTreeView>
這裏是JavaScript函數:(treeNodeChecked是所謂的OnClientNodeChecked)
var tree;
function treeNodeChecked(sender, eventArgs) {
tree = $find("<%= treeAccounts.ClientID %>");
var node = eventArgs.get_node();
//Here I save the ID of the checked node
updateSelectedNodes(node);
if (eventArgs._domEvent.shiftKey || event.shiftKey) {
var children = node.get_allNodes();
var checkedState = node.get_checked();
//If the checked node had children and the shift key was pressed
//when the checkbox was clicked then I check/uncheck its child
//nodes.
for(m in children)
{
var child = children[m];
child.set_checked(checkedState);
//Here I save the ID of the child nodes
updateSelectedNodes(child);
}
}
}
這工作完全在Chrome,Firefox和IE8-,但它在IE9 +中不起作用。 的問題是,在IE9 +兩者eventArgs._domEvent.shiftKey和event.shiftKey是未定義。
我也試過檢查event.keyCode或event.which但由於該事件不是一個按鍵或的keydown,他們是不確定爲好。
關於如何使這項工作在IE9 +的任何想法?提前致謝。