1

私は、修理サービスの記録を保持し、それらをページにリストするプロジェクトに取り組んでいます。レコードを一覧表示するグリッドビューがあります。そのグリッドビューには、現在のレコードの状態に関するオプションを表示するドロップダウン リストが含まれます。これでASP側でこのドロップダウンリストを作成できます:

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

しかし、私の状況では、C#側でそのグリッドビューを作成できれば、より良いでしょう。問題は、ドロップダウンリストを c# の templatefield に割り当てることができなかったことです。それを行う方法はありますか?前もって感謝します。

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 に答える