C# gridview中动态勾选框旁边的文本
我有一个gridview,它在gridview的headerTemplate中动态填充复选框。标题是一个复选框和一个动态文本/标签。但是,我无法让headertemplate显示文本: 页面加载: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();
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);
}
}