4

我正在用 C# 创建一个应用程序。我创建了一个页面,其中有 5 个链接。每个链接都会打开一个不同的页面,其中有一个GridView.

我可以在一个页面上制作所有这些网格吗?即,当我单击时link1,页面上只会出现与该链接对应的网格,而当我单击时link2,只会出现网格link2?只有激活的链接的网格应该是可见的,而所有其他的网格都是隐藏的。

有人可以帮助我如何或从哪里开始吗?

4

2 回答 2

3

由于您在标签中指定了 web 表单,多视图控件会让您感到惊奇。为每个 gridview 声明一个具有不同视图的多视图控件。希望这会有所帮助。

用法

标记

 <form id="form1" runat="server">


    <asp:LinkButton ID="LinkButton1"  Text="Link1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>
    <br>
    <asp:LinkButton ID="LinkButton2" runat="server" Text="Link2" OnClick="LinkButton2_Click">LinkButton</asp:LinkButton></br>

<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">

    <asp:View ID="View1" runat="server" >

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

    </asp:View>

      <asp:View ID="View2" runat="server">
      <asp:GridView ID="GridView2" runat="server">
    </asp:GridView>
</asp:View>
</asp:MultiView>

</form>

代码背后

    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        //retrieve data
        GridView1.DataBind();
        MultiView1.ActiveViewIndex=0;
     }


    protected void LinkButton2_Click(object sender, EventArgs e)
    {
         //retrieve data
        GridView1.DataBind();
        MultiView1.ActiveViewIndex=1;
    }
于 2013-01-08T15:19:10.700 回答
0

正如 Abide Masaraure 所指出的那样,我的解决方案并不是那么优雅。我建议你按照他的回答。

但是您也可以将每个gridview 放在不同的div 中,并在这些div 中设置属性“runat=server”

对于每个链接,您可以使用 asp.net 链接按钮(因为该元素具有 html 链接的默认外观)。

您的 aspx 代码将与此类似:

<asp:LinkButton runat="server" id="lnkButton_1" text="Link 1" OnClick="lnkButton_1_Click"/>
<asp:LinkButton runat="server" id="lnkButton_2" text="Link 2" OnClick="lnkButton_2_Click"/>
<asp:LinkButton runat="server" id="lnkButton_3" text="Link 3" OnClick="lnkButton_3_Click"/>
<asp:LinkButton runat="server" id="lnkButton_4" text="Link 4" OnClick="lnkButton_4_Click"/>
<asp:LinkButton runat="server" id="lnkButton_5" text="Link 5" OnClick="lnkButton_5_Click"/>

<div runat="server" id="divGrid_1" Visible="false">
   <asp:GridView runat="server" id="grid_1"></asp:GridView>
</div>

<div runat="server" id="divGrid_2" Visible="false">
   <asp:GridView runat="server" id="grid_2"></asp:GridView>
</div>

<div runat="server" id="divGrid_3" Visible="false">
   <asp:GridView runat="server id="grid_3"></asp:GridView>
</div>

<div runat="server" id="divGrid_4" Visible="false">
   <asp:GridView runat="server" id="grid_4"></asp:GridView>
</div>

<div runat="server" id="divGrid_5" Visible="false">
   <asp:GridView runat="server" id="grid_5"></asp:GridView>
</div>

您的 aspx.cs(代码隐藏)代码将像这样:

protected void lnkButton_1_Click(object sender, EventArgs E)
{
   divGrid_1.Visible = true;
   divGrid_2.Visible = false;
   divGrid_3.Visible = false;
   divGrid_4.Visible = false;
   divGrid_5.Visible = false;

   LoadGridView_1();
}

并且对于每个链接按钮事件单击,您可以将对应的 div 的可见性设置为 true,将其他的设置为 false,然后调用加载对应的 gridview 的方法。

我希望我已经帮助了你。

此致。

于 2013-01-23T12:00:37.820 回答