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);
}
}
使用此代码,每个动态列标签的文本都将相同,最后一个元素名称将显示在所有标签中。我该如何解决这个问题?
我意识到我实际上可以使用构造函数传递值:
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);
}
}