如何在DataGrid中为每一列的Header增加一个CheckBox控件,并获取其是否选中
我的datagrid控件的数据是由excel导入的(不固定大小),excel的第一行就是datagrid的Header,我想为每一个Header动态增加一个CheckBox控件,使用户能够选择需要的列,请大家帮忙 --------------------编程问答--------------------protected void DataList1_ItemCreated(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Footer)
{
for (int i = 1; i <=pageNum; i++)
{
LinkButton lbtn = new LinkButton();
lbtn.ID = "lbtn" + i.ToString();
lbtn.CommandName = "lbtn" + i.ToString();
lbtn.Text = i.ToString()+" ";
lbtn.Font.Underline = false;
e.Item.Controls.Add(lbtn);
}
}
}
这是datalist添加页码的代码,与datagrid类似 --------------------编程问答-------------------- 将Footer改为Header,LinkButton改为CheckBox等试试 --------------------编程问答-------------------- 在绑定DataGrid的时候动态创建 --------------------编程问答-------------------- 在绑定DataGrid的时候动态创建 --------------------编程问答-------------------- 这是一段我自己研究带checkbox功能DataGrid物件,给你参考一下
public override void InitializeCell(TableCell cell,
int columnIndex, ListItemType itemType)
{
//let the base class initialize the cell
base.InitializeCell(cell, columnIndex, itemType);
ViewState["_columnIndex"]=columnIndex;
if( itemType == ListItemType.EditItem ||
itemType == ListItemType.Item ||
itemType == ListItemType.AlternatingItem ||
itemType == ListItemType.SelectedItem ||
itemType == ListItemType.Header)
{
CheckBox checkbox = new CheckBox();
//assign an ID that we can use to find the control later
//we don't want to add a normal checkbox to the header.
checkbox.ID = (itemType==ListItemType.Header)? ("checkboxHead"+"_"+columnIndex): ("checkboxCol"+"_"+columnIndex);
if(checkbox.ID==("checkboxHead"+"_"+columnIndex))
checkbox.Attributes.Add("onclick","CheckAll(this)");
else if(checkbox.ID==("checkboxCol"+"_"+columnIndex))
checkbox.Attributes.Add("onclick","CheckChanged(this)");
cell.Controls.Add(checkbox);
}
}
补充:.NET技术 , ASP.NET