2013-06-04 21 views
0

設置
我有一個Telerik的劍道UI TabStrip控件與一個UpdatePanel內多個標籤...我如何重新選擇KendoUI TabStrip控件AJAX回發後在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> 

...這然後我線了在JavaScript後...

var optionTabContainer = $("#ABIOptions_TabContainer").kendoTabStrip({ 
    animation: { 
     open: { 
      effects: "fadeIn" 
     } 
    }, 
    select: onMainTabSelect 
}).data("kendoTabStrip"); 

方案
用戶將點擊VAR每個選項卡和每個選項卡的內部都是我們門戶的設置。當他們在標籤和他們進行了更改設置,期望的是,他們要點擊「保存」按鈕,將通過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"); 
    } 
} 

什麼不起作用 我的假設是Kendo TabStrip說,「嘿,那個標籤已經是s當選」當我打電話的setMainTab我回發後:

var prm = Sys.WebForms.PageRequestManager.getInstance(); 

prm.add_endRequest(function() { 
    BindControlEvents(); 
    setMainTab(); 
}); 

...,因此,不把我的標籤了。如果我點擊選項卡,然後噗,我的所有內容在那裏就像我的期望。

任何想法我可能做錯了什麼?

回答

1

我結束了改變onMainTabSelect方法:

var onMainTabSelect = function (e) { 
    tabToSelect = $(e.item).data("tabindex"); 
} 

這讓我對每個li的數據tabIndex值在我ul。我無法從kendo獲得標籤索引,所以我必須扮演自己的角色。一旦我得到的值,則我是能夠通過索引而不是標籤對象引用本身設置所選擇的選項卡。

相關問題