我正在用C#创建一个应用程序。我创建了一个页面,其中有5个链接。每个链接都会打开一个不同的页面,其中有GridView
。
我可以在一个页面上制作所有这些网格 - 即当我点击link1
时,只有与该链接相对应的网格才会显示在页面上,当我点击link2
时, link2
的网格出现了吗?只有激活链接的网格应该是可见的,并且所有其他网格都是隐藏的。
有人可以帮助我开始我应该怎样或在哪里开始?
答案 0 :(得分:3)
由于您在标记中指定了webforms,因此多视图控件将为您提供奇迹。请为每个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;
}
答案 1 :(得分:0)
我的解决方案并不像Abide Masaraure指出的那样优雅。我建议你按照他的回答。
但您也可以将每个gridview放在不同的div中,并在这些div中设置属性“runat = server”。
对于每个链接,您可以使用asp.net linkbutton(因为此元素具有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的方法。
我希望我帮助过你。
最好的问候。