如果指定了OnClientEntryAdded,则不会触发Telerik RadDropDownTree OnEntryAdded

时间:2013-08-14 10:28:11

标签: javascript asp.net telerik

我的页面上有一个RadDropDownTree,如下所示:

<telerik:RadDropDownTree ID="Tree1" runat="server" ButtonSettings-ShowClear="true" 
OnClientEntryAdded="EntryAdded" AutoPostBack="true" DefaultMessage="--Select--" 
DefaultValue="-1" OnEntryAdded="Tree1_EntryAdded">
<DropDownSettings AutoWidth="Enabled" CssClass="raddropdowntree" />
</telerik:RadDropDownTree>

EntryAdded客户端事件用于在选择时折叠下拉列表,如下所示:

function EntryAdded(sender, eventArgs) {
    sender.closeDropDown();
    return true;
}

EntryAdded服务器端事件当前为空。

我的问题是,如果我指定OnClientEntryAdded客户端事件,则不会触发服务器端事件EntryAdded。在选择dropdowntree中的任何项目时发生回发,触发Page_Load,但随后控件返回到页面而不调用EntryAdded事件。另一个问题是,在回发后,我的选定值被清除,并返回到默认值“--Select - ”。

我也尝试用OnClientEntryAdded="if(!EntryAdded()) { return false; }"替换声明,但这会返回JavaScript错误,说if是意料之外的。

如果我删除了客户端事件,则会调用EntryAdded服务器端事件,并且还会保留dropdowntree的选定值。

如果它有帮助,整个事情都在RadAjaxPanel中。

请指教。提前谢谢。

1 个答案:

答案 0 :(得分:1)

以下是我在Telerik帮助论坛上找到的解决方法。

function EntryAdded(sender, args) {
    setTimeout(function () { sender.closeDropDown(); }, 200);
}