1

我正在做一个项目,该项目将保留维修服务的记录并在页面中列出它们。我有一个网格视图来列出记录。该 gridview 将包含一个下拉列表,它将显示有关当前记录状态的选项。我可以用这个在asp端创建这个下拉列表:

<asp:TemplateField>
       <ItemTemplate>
             <asp:DropDownList runat="server" ID="test_drop1">
             </asp:DropDownList>
        </ItemTemplate>
</asp:TemplateField>

但在我的情况下,如果我可以在 c# 端创建那个 gridview,那就更好了。问题是我无法将下拉列表分配给 c# 中的模板字段。知道怎么做吗?提前致谢。

4

1 回答 1

0
    private void BindGrid()
      {
        DataTable dt = new DataTable();
        dt.Columns.Add("Test DropDown");

        Control container = new Control();
        TemplateField tf = new TemplateField();
        string chkRole = "ddlTest";


        tf.ItemTemplate = new CreateDropDownList(chkRole);
        //tf.HeaderText = dt.Columns[i].ColumnName;
        this.gvDDL.Columns.Add(tf);
        gvDDL.DataSource = dt;
        gvDDL.DataBind();
    }

}
public class CreateDropDownList:ITemplate
 {
    string checkboxID;
    public CreateDropDownList(string id)
    {
        this.checkboxID = id;
        //
        // TODO: Add constructor logic here
        //
    }
    public void InstantiateIn(Control container)
    {
        DropDownList ddl = new DropDownList();
        ddl.ID = checkboxID;
        container.Controls.Add(ddl);
    }
 }

请尝试这段代码。这样,您可以在运行时添加一个下拉列表,而无需在 aspx 页面中定义它。

于 2013-07-04T09:29:25.257 回答