Kendo ui 在UpdatePanel中的AJAX回发后,如何重新选择KendoUI选项卡条
设置Kendo ui 在UpdatePanel中的AJAX回发后,如何重新选择KendoUI选项卡条,kendo-ui,updatepanel,Kendo Ui,Updatepanel,设置 我有一个Telerik Kendo UI标签,在一个UpdatePanel中有多个标签 <asp:UpdatePanel ID="DataDetails_Panel" UpdateMode="Conditional" runat="server"> <div id="ABIOptions_TabContainer"> <ul> <li>Attendance</li> <li>
我有一个Telerik Kendo UI标签,在一个UpdatePanel中有多个标签
<asp:UpdatePanel ID="DataDetails_Panel" UpdateMode="Conditional" runat="server">
<div id="ABIOptions_TabContainer">
<ul>
<li>Attendance</li>
<li>Grades</li>
<li>Gradebook</li>
<li>PFT</li>
<li>Scheduling</li>
<li>Miscellaneous</li>
<li>Parent Data Changing</li>
</ul>
</div>
</asp:UpdatePanel>
场景用户将单击各个选项卡,每个选项卡内都是我们门户的设置。当他们在选项卡中对设置进行更改时,他们希望单击“保存”按钮,该按钮将通过ajax执行回发到服务器,因为它位于更新面板中 当前行为
在回发发生并且
ul
内容返回后,我重新应用kendoTabStrip设置函数调用,该函数不选择任何选项卡。在用户看来,这就像页面现在是空的,而它只有内容
所需结果我想做的是,在部分回发发生并且UpdatePanel发回
ul
之后,我想重新选择用户先前选择的选项卡
什么已经起作用了我已经有办法保留用户单击的选项卡:
var onMainTabSelect = function (e) {
tabToSelect = e.item;
console.log("onTabSelect --> ", e.item.textContent);
}
以及一个在调用时重置所选选项卡的功能:
function setMainTab() {
if (!jQuery.isEmptyObject(tabToSelect)) {
var tabStrip = $('#ABIOptions_TabContainer').data("kendoTabStrip");
console.log("Attempt to set tab to ", tabToSelect.textContent);
tabStrip.select(tabToSelect);
} else {
console.log("tabToSelect was empty");
}
}
什么不起作用
我的假设是,当我在回发后调用setMainTab
时,剑道标签条会说,“嘿,那个标签已经被选中了”:
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
BindControlEvents();
setMainTab();
});
…因此,不会使我的账单减少。如果我点击标签,然后砰的一声,我所有的内容都在那里,就像我期望的那样
你知道我做错了什么吗?我最终将
onMainTabSelect
方法更改为:
var onMainTabSelect = function (e) {
tabToSelect = $(e.item).data("tabindex");
}
它为我的ul
中的每个li
获取数据tabindex值。我无法从剑道那里得到制表符索引,所以我不得不扮演自己的角色。一旦获得该值,就可以通过索引而不是选项卡对象引用本身来设置所选选项卡
var onMainTabSelect = function (e) {
tabToSelect = $(e.item).data("tabindex");
}