2010-08-26 99 views
0

帶有JQuery UI選項卡窗口小部件和四個選項卡的ASP.NET Web窗體。 我想禁用最新的三個標籤,當我點擊一個提交按鈕。禁用jquery選項卡服務器端

謝謝!

P.S. 我知道如何在jQuery的

$(".selector").tabs({ disabled: [1, 2] }); 

禁用選項卡,我不知道該怎麼做,在服務器端代碼:)

回答

2

jQuery是客戶端。你不能禁用它的服務器端。

你可以做的是在下一頁加載(或AJAX調用)時將這一點的jQuery發送回服務器的頁面。

+0

好的。那麼你的建議是什麼?使用OnClientClick處理程序調用客戶端腳本或註冊客戶端腳本以在下一頁加載時執行? – Lorenzo 2010-08-26 17:02:46

+1

該頁面是否提交回傳?或者你正在做一個AJAX調用?答案就是你的答案。 – 2010-08-26 17:53:12

0

服務器端通常沒有jQuery或JavaScript的概念,這些都是在客戶端完成的。有一兩件事你可以做的是,在按鈕的服務器端Click事件處理程序,添加一些JavaScript發送到客戶端執行加載網頁時:

http://msdn.microsoft.com/en-us/library/3hc29e2a.aspx

我還沒有真正做了很多與那,但它似乎是非常標準的。另一種可能性是將選項卡封裝在PlaceHolder控件中,並在事件處理程序中相應地將它們設置爲visible = true/false。你可以非常順利地動態添加/刪除HTML和JavaScript的PlaceHolders。

0

您可以從CS代碼回發JavaScript。 所以在你click_submit_button方法使用以下命令:

int Tab_to_Disable = 3; 
ClientScript.RegisterStartupScript(this.GetType(), "Script", "<script language=javascript>" + 
"$('#container-1').tabs().tabs('disable', " + Tab_to_Disable + "); " + 
"</script>"); 

希望這有助於:d

0

這是一個jQuery UI技術,所以你無法禁用它在服務器端。但是一種解決方法可以幫助您禁用,即在Page_load或其他任何函數上從服務器端註冊啓動腳本。

string str = "$(\"#tabs\").tabs({ disabled: [1, 2] });"; 
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "DisableTabs", str, true);