高手们请进。给高分。困扰的一个难题
在asp.net gridview数据控件里面动态增加一个checkbox 控件。代码如下:
private string strColumnName;
private DataControlRowType dcrtColumnType;
/// <summary>
/// 动态添加模版列
/// </summary>
/// <param name="strColumnName">列名</param>
/// <param name="dcrtColumnType">列的类型</param>
public GenGridTemplateUtil(string strColumnName, DataControlRowType dcrtColumnType)
{
this.strColumnName = strColumnName;
this.dcrtColumnType = dcrtColumnType;
}
/// <summary>
/// 生成girdview列
/// </summary>
/// <param name="ctlContainer"></param>
public void InstantiateIn(System.Web.UI.Control ctlContainer)
{
switch (dcrtColumnType)
{
case DataControlRowType.Header: //列标题
Literal ltr = new Literal();
ltr.Text = strColumnName;
ctlContainer.Controls.Add(ltr);
break;
case DataControlRowType.DataRow: //模版列内容——加载CheckBox
CheckBox cb = new CheckBox();
cb.ID = "CheckBox";
// cb.AutoPostBack = true;
cb.Checked = false;
ctlContainer.Controls.Add(cb);
break;
}
}
TemplateField Field = new TemplateField();
Field.HeaderText = "选择";
Field.ShowHeader = true;
Field.HeaderTemplate = new GenGridTemplateUtil("选择", DataControlRowType.Header);
Field.ItemTemplate = new GenGridTemplateUtil("", DataControlRowType.DataRow);
this.grid_list.Columns.Insert(0, Field);
然后我用这段代码判断checkbox的值 无法取到,大家帮看看问题出现在什么东西,增加checkBOX的方法在pageload里面调用的
//GridView gridview = this.Page_List.FindControl("grid_list") as GridView;
//if (gridview != null)
//{
// for (int i = 0; i < gridview.Rows.Count; i++)
// {
// CheckBox CheckBox = gridview.Rows[i].Cells[0].FindControl("CheckBox") as CheckBox;
// if(CheckBox!=null)
// {
// if (CheckBox.Checked)
// {
// Id += gridview.Rows[i].Cells[1].Text.Trim();
// Id += "&";
// }
// }
// }
//}