2013-04-11 58 views
1

我在我的应用程序jQuery UI的标签加载到页面的asp.net

使用jQuery UI的标签在此我加载其中有每个选项卡上的ASP形式的三种不同的标签。我们知道asp页面只能有一种形式,所以我从下面的其他两个页面加载这些内容。

<li><a href="#tabs-1">Home</a></li> 
<li><a href="user_info.aspx">My Uploads</a></li> 
<li><a href="Enquiry.aspx">Enquiry</a></li> 

在user_info.aspx页我有一个GridView

<form runat="server"> 
    <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound" ></asp:GridView>  
</form> 

我已经在不断变化的页面加载该页面user_info.aspx我的网格视图中添加一个pagenation。有没有办法加载这个内部后,当我改变网页视图的页面页面。

+0

我不知道这是去工作你希望的方式。将user_info.aspx转换为ascx用户控件可能更容易。 – 2013-04-11 13:57:05

回答

1

编辑:经过大量研究后,我得出结论,这是不能按照您尝试这样做的方式完成的。原因是因为当您将user_info.aspx页面加载到Default.aspx时,您的页面中有2个表单,其ID为form1。因此,当通过单击GridViews页面调用__doPostBack()函数时,您将得到一个Javascript异常,因为调用的__doPostBack()Default.aspx中的一个。由于您从user_info.aspxGridView1)传递参数,因此会出现错误。如果您更改页面中某个窗体的id,然后单击GridView的页面,则会看到一个asp.net异常,因为ViewState将无效(如果您还要更改窗体的操作,到Default.aspx)。

并非一切都坏消息,你有一些解决方案:

解决方案1 ​​:只需将GridView添加到您的标签。

解决方案2:添加IFrame指向user_info.aspx。如果你真的必须在不同的页面中使用GridView,我会使用这个解决方案。

标记

<div id="tabs-2"> 
    <iframe src="user_info.aspx" id="myFrame" frameborder="0"></iframe> 
</div> 

的jQuery

$('#myFrame').load(function() { 
    $(this).height($(this).contents().height()); 
    $(this).width($(this).contents().width()); 
}); 

这个jQuery使得IFrame适合它的内容。它确实看起来像它属于那里(它也是无边界的),如果你改变页面,它保持在同一个标​​签中。

截图

enter image description here

+0

我在这里使用asp.net(C#)。我用这个方法http://jqueryui.com/tabs/#ajax在这里加载动态页面。 – Jhonny 2013-04-12 05:20:09

+0

如何将内容的divid分配给另一个页面中的选项卡? – Jhonny 2013-04-12 05:24:25

+0

对不起,你的情况很不清楚。你将不得不向我解释更好。 – 2013-04-12 05:38:20