Jquery Ui标签加载到asp.net中的页面

时间:2013-04-11 13:21:25

标签: asp.net forms gridview jquery-ui-tabs

我在我的应用程序中使用了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>

我在网格视图中添加了一个pagenation,在更改页面时会加载user_info.aspx页面。当我更改网格视图的pagenation页面时,有没有办法在后面加载它。

1 个答案:

答案 0 :(得分:1)

编辑:经过大量研究后,我得出的结论是,这不可能按照您尝试的方式完成。这是因为当您将user_info.aspx页面加载到Default.aspx时,您的页面中有两个ID为form1的表单。因此,当通过单击GridViews页面调用__doPostBack()函数时,您将获得Javascript异常,因为被调用的__doPostBack()是来自Default.aspx的{​​{1}}。由于您从user_info.aspxGridView1)传递参数,因此会出现错误。如果您更改了页面中某个表单的ID,并单击GridView的页面,您将获得一个asp.net异常,因为ViewState将无效(如果您还更改了表单的操作,到Default.aspx)。

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

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

解决方案2 :添加指向IFrame的{​​{1}}。如果你真的必须在不同的页面中使用GridView,我会选择这个解决方案。

示例

<强>标记

user_info.aspx

<强>的jQuery

<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()); }); 符合它的内容。它确实看起来像它属于那里(它也是无边界的),如果你改变页面,它就会保留在同一个标​​签中。

<强>截图

enter image description here