ASP.net中的父子Gridview

时间:2011-03-10 03:39:52

标签: c# asp.net

我在ASP.net 3.5页面中有两个GridView。我将HyperLink字段作为First GridView中的一个字段。

点击这个超链接,我需要调用显示第二个网格,方法是将一些值传递给方法showAllRecords(来自超链接的值)

我该怎么做?

由于

3 个答案:

答案 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;

来将值传递给第二个网格。