在jquery ui选项卡上执行.net回发

时间:2013-05-08 14:03:52

标签: c# asp.net postback jquery-ui-tabs

我使用JQueryUI标签在我的网络表单上有一组标签。

当我单击选项卡时,我希望加载该选项卡上的数据(仅当我单击选项卡时)。因为我不想在初始页面加载时加载所有选项卡数据。

我在选项卡上使用了一个链接按钮,因此当我单击选项卡时,按钮单击事件应该触发并导致回发。但这不会发生。

我的问题是。 JQueryUI选项卡插件是否禁用选项卡中链接的默认操作?我注意到如果我没有在tab li元素中使用某种类型的锚链接,那么选项卡没有正确呈现,所以JQuery显然需要一个锚来渲染。

如何仅在选中标签时才能加载数据?

1 个答案:

答案 0 :(得分: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");
        }
    }
相关问题