如何从gridView中特定行的字段获取参数,以获取同一行的模板字段

时间:2011-08-15 10:27:10

标签: c# asp.net gridview objectdatasource templatefield

我正在使用GridView从dataBase显示数据,gridView绑定到objectDataSource。 gridview中的每一行代表一个属于用户的项目,我想在gridView中添加另一个字段,该字段将显示用户详细信息(实际上位于dataBase的不同表中)。

我不确定最好的方法是什么, 我试图向gridView添加一个包含DetailView的TemplateField, 并将其绑定到另一个objectdatasource但我不知道如何从行中的特定字段(userID字段)获取参数。

欢迎任何建议......

1 个答案:

答案 0 :(得分:1)

这会比那更棘手。您可以将userID设置为数据键,并在GridView的RowDataBound事件中绑定详细信息视图。

<asp:GridView ID="GridView1" runat="server" DataKeyNames="UserID" OnRowDataBound="GridView1_RowDataBound">

在后面的代码中:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    //get the data key
    int userID = (int)GridView1.DataKeys[e.Row.RowIndex]["UserID"];

    //get the nested details view control
    DetailsView dv = (DetailsView)e.Row.FindControl("DetailsView1");

    dv.DataSource = GetUserDetailsTable(userID); //your data source
    dv.DataBind();
}