C# gridview中动态勾选框旁边的文本

C# gridview中动态勾选框旁边的文本,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个gridview,它在gridview的headerTemplate中动态填充复选框。标题是一个复选框和一个动态文本/标签。但是,我无法让headertemplate显示文本: 页面加载: foreach (Module m in listModule) { TemplateField tfield = new TemplateField(); CheckBox cbAll = new CheckBox();

我有一个gridview,它在gridview的headerTemplate中动态填充复选框。标题是一个复选框和一个动态文本/标签。但是,我无法让headertemplate显示文本:

页面加载:

   foreach (Module m in listModule)
        {
            TemplateField tfield = new TemplateField();
            CheckBox cbAll = new CheckBox();
            tfield.HeaderTemplate = new TickColumn();
            tfield.HeaderText = m.ModuleName; //<- This is not getting displayed.
            gvUsers.Columns.Add(tfield);
        }

class TickColumn : ITemplate
    {
        public void InstantiateIn(System.Web.UI.Control container)
        {
            CheckBox cbAll = new CheckBox();
            cbAll.ID = "cbAll";
            container.Controls.Add(cbAll);
        }
    }
页面加载:

foreach (Module m in listModule)
        {
            TemplateField tfield = new TemplateField();
            CheckBox cbAll = new CheckBox();
            tfield.HeaderTemplate = new TickColumn();
            lblname = m.ModuleName;
            gvUsers.Columns.Add(tfield);
        }


class TickColumn : ITemplate
    {
        public void InstantiateIn(System.Web.UI.Control container)
        {
            CheckBox cbAll = new CheckBox();
            Label lbl = new Label();
            lbl.Text = lblName;
            cbAll.ID = "cbAll";
            container.Controls.Add(cbAll);
            container.Controls.Add(lbl);
        }
    } 

使用此代码,每个动态列标签的文本都将变得相同,最后一个元素名称将显示在所有标签中。如何解决这个问题?

我意识到我可以使用构造函数传递值:

class TickColumn : ITemplate
    {
private String _label;
        public TickColumn(String p_label)
        {
            this._label = p_label;
        }
        public void InstantiateIn(System.Web.UI.Control container)
        {
            CheckBox cbAll = new CheckBox();
            cbAll.ID = "cbAll";
            cbAll.Text = this._label;
            container.Controls.Add(cbAll);
        }
   }
class TickColumn : ITemplate
    {
private String _label;
        public TickColumn(String p_label)
        {
            this._label = p_label;
        }
        public void InstantiateIn(System.Web.UI.Control container)
        {
            CheckBox cbAll = new CheckBox();
            cbAll.ID = "cbAll";
            cbAll.Text = this._label;
            container.Controls.Add(cbAll);
        }
   }