2

我得到DataGrid了从这个 DataGrid 中获取其数据的 ControlDataTable我想将DropDownListControl 与 DataTable 中的相关数据绑定

DropDownList commentDrop = (DropDownList)packageCommentDataGrid.FindControl("commentDrop");
       commentDrop.DataSource = dt;
        commentDrop.DataTextField = dt.Columns["CommentString"][0];
        commentDrop.DataValueField = dt.Columns["CommentP"][0];

和 ItemDataBound 事件将是这样的:

protected void packageCommentDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e)
{
    if (e.Item.ItemType==ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
        DropDownList commentDrop = (DropDownList)e.Item.FindControl("commentDrop");

    }
}

谢谢,

4

1 回答 1

2

如果我理解正确,这就是你想要做的。

首先: 您必须将具有 to 的GridView列转换DropDownListTemplateField。确保DropDownList位于<TemplateField><ItemTemplate><DropDownList id="" runat="server" /></ItemTemplate></TemplateField>.

第二:在后面的代码中 创建Gridview.RowDataBound事件处理程序。然后在此方法中执行以下操作:

if(e.Row.RowType == DataControlRowType.DataRow)
{
    DropDownList ddl = (DropDownList)e.Row.Cells["Column Name / Index here"].FindControl("commentDrop");
    ddl.DataSource = dt;
    ddl.DataTextField = "Column Name";
    ddl.DataValueField = "Column Name";
    ddl.DataBind();
}
于 2012-06-12T09:39:20.417 回答