Asp.net Gridview

时间:2010-07-29 00:15:21

标签: asp.net

我喜欢网页上的两个网格视图相互重叠我有一个按钮切换那些网格视图。当页面加载gridview1加载并且gridview2被隐藏时,当我点击按钮gridview2显示和gridview1隐藏(使用javascript )两个网格视图都启用了分页。问题是当我想转到gridview2的page2时页面被重新加载并且gridview2消失并且gridview1显示出来。我是asp.net的新蜜蜂,我想知道有没有办法当我想查看gridview2的page2时,停止gridview1重新加载

此致 拉维

2 个答案:

答案 0 :(得分:0)

这不是最好的解决方案,但最快捷,最简单,将GridView2放在UpdatePanel中:

<form id="Form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
        <asp:GridView ID="GridView2" runat="server">
        </asp:GridView>
        </ContentTemplate>
    </asp:UpdatePanel>
</form>

答案 1 :(得分:0)

实际上所有页面都被重新加载,因为gridviews不会在回发之间保持状态 这就是asp.net控制的工作方式。

如果您使用javascript显示一个或另一个gridview,首先必须保存当前可见的哪个网格视图。

您可以将其保存在Viewstate

Viewstate["visibleGrid"] = visibleGrid1.Enabled ? 1 : 2

然后在你的Page_Load中你必须检查哪个是可见的并自己手动设置

protected void Page_Load(object sender, EventArgs e)
{
        gridview1.Visible = (int)Viewstate["visibleGrid"] == 1;
        gridview2.Visible = (int)Viewstate["visibleGrid"] == 2;
}

最后你必须有一个PageIndexChanging for gridview1和2 beacuse页面改变时,gridview必须再次限制

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.Datasource = ...
    GridView1.Databind();
}

protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView2.PageIndex = e.NewPageIndex;
    GridView2.Datasource = ...
    GridView2.Databind();
}