【发布时间】:2017-03-14 10:17:33
【问题描述】:
我使用 @Tim Schmelter 代码 (Creating Gridview column Header by loading data from database) 作为 ItemTemplate Checkboxes 它工作正常,但是当使用 HeaderTemplate 时,我在 ITemplate --> CB_DataBinding --> object dataValue = ((DataRowView)container.DataItem )[_columnName];说 NullReference,因为 DataItem 是 Null。我的代码:
private void CreateGridColumns()
{
var tblAllowanceGroup = GetAllowanceGroup();
foreach (DataRow row in tblAllowanceGroup.Rows)
{ ...
field.HeaderTemplate = new GridViewCheckBoxTemplate(ListItemType.Header, AllowanceGroupName);
gvEmpSalaryStructure.Columns.Add(field);
}
private void BindGrid()
{
var tblAllowanceGroup = GetAllowanceGroup();
DataSet dsgrid = new DataSet();
DataTable dtgrid = new DataTable();
var empRow = dtgrid.NewRow();
dtgrid.Columns.Add("EmpName");
foreach (DataRow row in tblAllowanceGroup.Rows)
{
String AllowanceGroupName = row.Field<String>("AllowanceName");
//Add column from domain-name
dtgrid.Columns.Add(AllowanceGroupName, typeof(bool));
//CheckBox-Checked is a boolean
//This gives me only Header Text of Gridview
}
我想要 GridView 动态生成的应该包含复选框的标题。并且想要更改我应该让 ITemplate CB_DataBinding 与 ListItemType.Header 一起使用。
当我们选中 Header 列中的复选框时,该列中的所有复选框都应该被选中。
提前致谢。
【问题讨论】:
标签: c# asp.net sql-server-2008