我正在使用GridView从dataBase显示数据,gridView绑定到objectDataSource。 gridview中的每一行代表一个属于用户的项目,我想在gridView中添加另一个字段,该字段将显示用户详细信息(实际上位于dataBase的不同表中)。
我不确定最好的方法是什么, 我试图向gridView添加一个包含DetailView的TemplateField, 并将其绑定到另一个objectdatasource但我不知道如何从行中的特定字段(userID字段)获取参数。
欢迎任何建议......
答案 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();
}