簡體   English   中英

當AjaxControlToolkit TabContainer准備就緒時的Javascript?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM