我的页面上有一个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中。
请指教。提前谢谢。
答案 0 :(得分:1)
以下是我在Telerik帮助论坛上找到的解决方法。
function EntryAdded(sender, args) {
setTimeout(function () { sender.closeDropDown(); }, 200);
}