我在ASP.net 3.5页面中有两个GridView。我将HyperLink字段作为First GridView中的一个字段。
点击这个超链接,我需要调用显示第二个网格,方法是将一些值传递给方法showAllRecords(来自超链接的值)
我该怎么做?
由于
答案 0 :(得分:4)
您可以为GridView1(主要GridView)
尝试这样的TemplateField<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="server" ID="LinkButton1" CommandName="cmdName" CommandArgument='<%# Eval("IdColumn") %>' > LinkButton</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
在GridView1的RowCommand中,您可以获取CommandArgument并为GridView2设置DataSource(子GridView)。
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName = "cmdName")
{
var arg = e.CommandArgument;
// use arg to filter GridView2's DataSource
GridView2.DataSource = FilteredDataSource;
GridView2.DataBind();
// show GridView2 if it's hidden.
}
}
答案 1 :(得分:1)
以下博文可能会给你一个提示;
答案 2 :(得分:0)
首先,您需要在第一个网格上处理SelectedIndexChanged事件,然后从超链接中获取值。超链接是DataKey吗?如果是,那么你可以通过GridOne.SelectedDataKey.Values["key"]
得到它,否则通过valuefromGridOne = GridOne.SelectedRow.Cells[num].Text
得到实际的单元格,其中number是单元格编号。获得它之后,您可以通过处理objectDataSource的选择事件(假设您使用它来绑定数据)并将值传递给e.InputParameters["dataKey"] = valuefromGridOne;