2013-05-08 37 views
0

我在使用JQueryUI選項卡的web表單上有一組選項卡。在jquery ui選項卡選項上執行.net回發

當我點擊一個選項卡時,我希望加載該選項卡上的數據(僅當我單擊該選項卡時)。因爲我不想在初始頁面加載時加載所有標籤數據。

我在選項卡上使用了一個鏈接按鈕,這樣當我點擊選項卡時,按鈕單擊事件應該會觸發並導致回發。但是這並沒有發生。

我的問題是。 JQueryUI選項卡插件是否禁用選項卡中鏈接的默認操作?我注意到,如果我沒有在選項卡li元素中使用某種類型的錨鏈接,而該選項卡沒有正確呈現,那麼JQuery顯然需要一個錨來呈現。

如何才能讓我的數據僅在選中選項卡時加載?

回答

0

http://jqueryui.com/tabs/#ajax

通過AJAX內容在右側菜單

,那麼你可以這樣做

ajaxpostback.ashx?頁=第1頁

,然後你只打算返回內容

代碼示例

的Javascript

<script type="text/javascript"> 
$(function() { 
    $("#tabs").tabs(); 
}); 

HTML

<div id="tabs"> 
<ul> 
    <li><a href="#tabs-1">Preloaded</a></li> 
    <li><a href="Handler1.ashx?page=1">Tab 1</a></li> 
    <li><a href="Handler1.ashx?page=2">Tab 2</a></li> 
    <li><a href="Handler1.ashx?page=3">Tab 3 (slow)</a></li> 
    <li><a href="Handler1.ashx?page=4">Tab 4 (broken)</a></li> 
</ul> 
<div id="tabs-1"> 
    <p> 
     Nunc tristique tempus lectus.</p> 
</div> 

處理器

public void ProcessRequest(HttpContext context) 
    { 
     if (string.Compare(context.Request.QueryString["page"].ToString(), "1") == 0) 
     { 
      context.Response.ContentType = "text/plain"; 
      context.Response.Write("1"); 
     } 
     else if (string.Compare(context.Request.QueryString["page"].ToString(), "2") == 0) 
     { 
      context.Response.ContentType = "text/plain"; 
      context.Response.Write("2"); 
     } 
     else 
     { 
      context.Response.ContentType = "text/plain"; 
      context.Response.Write("rest"); 
     } 
    }