0

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

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

欢迎大家提出意见...

4

1 回答 1

1

这会比这更棘手。可以将userID设置为数据键,在GridView的RowDataBound事件中,绑定detail view。

<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();
}
于 2011-08-15T15:31:51.947 回答