[英]Javascript for when AjaxControlToolkit TabContainer is ready?
我有一個帶有TabContainer
控件的頁面(來自Ajax Control Toolkit),我根據當前選擇的選項卡切換頁面上某些元素的可見性。 我一直在OnClientActiveTabChanged
的事件處理程序中執行此操作(工作正常),但我發現它在回發后使頁面處於錯誤狀態。 我嘗試將一些代碼添加到document.ready
事件處理程序以獲取索引,但是當我執行以下操作時:
$(document).ready(function () {
var index = $('#<%= TabContainer1.ClientID %>').[0].control.get_activeTabIndex();
// Do some stuff with the index
});
...我在.control
屬性上得到一個空引用異常。 有沒有辦法為TabContainer
掛鈎客戶端“就緒”事件?
我不熟悉具有普通DOM元素的事件生命周期(似乎應該有一般的onload事件,但我沒有看到一個)。 如果沒有一個可以輕松處理的事件,似乎可以使用UpdateMode = Conditional和AsyncPostBackTrigger來添加一個UpdatePanel
,它指向一個帶有onclick事件處理程序的隱藏按鈕,該處理器將獲得活動選項卡索引 - 但是對於我希望DOM已經曝光的東西來說,這似乎是很多動人的東西。
太晚沒有幫助,但我遇到了同樣的問題並找到了解決方法。 改變你的代碼
$(document).ready(function () {
var index = $('#<%= TabContainer1.ClientID %>').[0].control.get_activeTabIndex();
// Do some stuff with the index
});
至
function pageLoad() {
var index = $('#<%= TabContainer1.ClientID %>').[0].control.get_activeTabIndex();
// Do some stuff with the index
};
這里的解釋: http : //encosia.com/document-ready-and-pageload-are-not-the-same/
基本上,jQuery的ready事件“有點早”並且TabContainer尚未初始化,而客戶端ASP.Net的pageLoad已經足夠晚了,TabContainer已經被初始化了。
檢查此帖子以在回發期間保存選項卡選擇。 通過將活動選項卡索引保存在隱藏變量中,它適用於正常的回發。 雖然它是在發布鏈接中為JQuery插件編寫的,但概念應該是相同的,即保持所選選項卡的索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.