這可能以前曾被問過很多次,但我想知道如何維護AjaxControlToolKit TabContainer的ActiveTabIndex。ASP.NET在TabContainer內保留ActiveTabIndex回發
我可以想到實現這樣的事情的唯一方法是在會話中存儲ActiveTabIndex並在回發中檢查此內容。有沒有其他解決方案來解決這個問題?
這可能以前曾被問過很多次,但我想知道如何維護AjaxControlToolKit TabContainer的ActiveTabIndex。ASP.NET在TabContainer內保留ActiveTabIndex回發
我可以想到實現這樣的事情的唯一方法是在會話中存儲ActiveTabIndex並在回發中檢查此內容。有沒有其他解決方案來解決這個問題?
最有可能this回答你的問題。這些東西屬於頁面的ViewState,當它們尚未保存在那裏時。
編輯: 另一方面:我測試了它,我的ActiveTabIndex保持(異步)回發。
沒有必要在這個Malachi上混淆Session。
在「ActiveTabChanged」事件處理程序剛落,這個(假設你使用C#):
int iTabIndex = int.Parse(Request.Params["__EVENTARGUMENT"].Split(':')[1]);
然後執行,你需要根據「iTabIndex」的價值任何邏輯。
「__EVENTARGUMENT」實際上包含「activeTabChanged:#」(其中「#」是被點擊的標籤的索引),所以我只是解析出實際的標籤索引。 – Mysterei 2011-03-23 22:45:58
您需要爲選項卡容器添加ActiveTabChanged事件,並且可以保持活動選項卡索引處於視圖狀態,並且在頁面加載時只檢查它是否爲空,然後將其設置爲活動選項卡索引。
protected void TabContainer1_ActiveTabChanged(object sender, EventArgs e)
{
ViewState["ActiveTabIndex"] = TabContainer1.ActiveTabIndex;
}
PageOnLoad事件代碼
if (!(ViewState["ActiveTabIndex"] == null))
{
TabContainer1.ActiveTabIndex = (int)ViewState["ActiveTabIndex"];
}
確保在TabContainer的標籤添加以下屬性
AutoPostBack="true" OnActiveTabChanged="TabContainer1_ActiveTabChanged"
此鏈接將成爲未來的有用的 - 但是我意識到這個問題是不是做畢竟還有一個回發問題。謝謝 – Malachi 2010-09-23 13:41:00