单击时加载jquery选项卡内容

时间:2011-10-08 12:59:46

标签: jquery asp.net database

我是Jquery和javascript的新手。我在我的as.net项目中使用Jquery UI选项卡。我的标签内容是动态的。因此,我使用SQL Server来保存和检索它们。我有一个类根据点击的特殊按钮构建标签。这是我的班级:

 public class TabBuilder{
public string Build(int ServiceId)
{

    string title = " <div class='demo'><div id='tabs' onclick='alert(yes)'><ul>\n";
    string content = "";

    DataTable select = new DataTable();
    ServicesBLL ser = new ServicesBLL();
    select = ser.FormsSelTabs(ServiceId);

     int i = 1;

    foreach (DataRow row in select.Rows)
    {

        title += createTitle(row["LinkName"].ToString(), i);
        content += createContent(row["LinkHref"].ToString(), i);
        i++;
    }
    title += "</ul>\n";
    content += "</div></div>";

    return title + content;
}

private string createTitle(string title, int i)
{

    string htm = "<li><a id='tab{0}' href='#tabs-{1}'>{2}</a></li>\n";
    htm = string.Format(htm, i,i, title);
    return htm;
}

private string createContent(string content, int i)
{
    string htm = "<div id='tabs-{0}'><iframe dir='rtl' frameborder='0' height='600px' width='100%' src='{1}'></iframe></div>\n";
    htm = string.Format(htm, i, content);
    return htm;
}}

在我的aspx页面中我有一个文字(LtrTabs)来显示标签,在aspx.cs代码中我有这个代码来构建标签:

protected void btnEntities_Click(object sender, EventArgs e)
{
    ServiceID = 1;
    TabBuilder tab = new TabBuilder();
    LtrTabs.Text = tab.Build(ServiceID);
 }

我需要延迟加载标签,但我不知道如何实现它。我看到了一些示例,但没有一个使用数据库来加载内容。

1 个答案:

答案 0 :(得分:1)

我没有筛选服务器端代码以确定,但只要你有一个函数输出带有标记的 empty 标签,如下所示:

http://jqueryui.com/demos/tabs/#Ajax_mode

然后,这只是用有效资源填充hrefs的问题。在您的服务器端,只要它能够识别HTML内容的传入请求(无需发回标签等,只需要内容),这就是您所需要的一切。

回顾一下:

  1. 使用空标签返回HTML的功能。或者,如果这不需要是动态的,只需将其写为HTML;没有必要用不必要的逻辑使事情变得复杂。

  2. 返回标签内容的功能。

  3. 你如何区分这两者真的取决于你。 POST / GET变量,不同的URL ......但是你的应用程序正在构建中。