如何通过同一页面上的超链接打开新的gridview,我不想关闭现有的gridview,但是当用户点击此表格上的任何超链接时,想要显示与此相邻的另一个gridview。我有一些类似下面的数据,当我点击任何这些超链接时,我想在同一页面上打开一个新的gridview。新的gridview将包含来自不同表的数据。
我无法插入图片,因为我没有足够的声誉,但可以分享我的HTML代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames="UN_AT_Group">
<Columns>
<asp:HyperLinkField DataTextField="Group_Description" DataNavigateUrlFields="UN_AT_Group" DataNavigateUrlFormatString="~/Details.aspx?Id={0}"
</Columns>
</asp:GridView>
答案 0 :(得分:1)
改为使用LinkButton:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames="UN_AT_Group" OnRowCommand="GridView1_RowCommand" Visible="True">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="GotoNextGrid" runat="server" CommandArgument="NextGrid" CommandName="NextGrid" Text="Show Rights">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
第二次GridView
为您做同样的事情,但设置Visibile="false"
。
然后在CodeBehind中捕获它:(注意,确保我在此处拥有的标签也可以是其他内容......无论您的DataTextField
是什么。
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "NextGrid")
{
LinkButton lb = (LinkButton)e.CommandSource;
GridViewRow gvr = (GridViewRow)lb.NamingContainer;
Label lbl = gvr.FindControl("GroupDescription") as Label;
string description = lbl.Text;
GridView1.Visible = false;
GridView2.Visible = true;
FillDataForGridView2(description) //Fill the Data for GridView2 here and pass description as parameter
}
}
如果您使用UpdatePanel
,请务必小心,然后您需要添加Trigger
:
<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridView1" EventName="RowCommand" />
</Triggers>
我希望这会有所帮助。
如果您有任何问题,请询问。