gridview中动态tickbox旁边的文本

本文关键字:文本 tickbox 动态 gridview | 更新日期: 2023-09-27 18:20:12

我有一个网格视图,它在网格视图的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);
        }
    }

由于某些原因,无法显示HeaderText。

或者我试着在类中添加一个标签,但我不知道如何在中传递值

static string lblname;

页面加载:

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);
        }
    } 

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

gridview中动态tickbox旁边的文本

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

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);
        }
   }