BataGrid创建模板列(还是没得到解决)

来源:百度文库 编辑:神马文学网 时间:2024/03/28 20:36:38
问:
代码如下:
//绑定到网格
public void BindGrid()
{
CreateFormat();
dbGrid.DataSource=CreateDataSource();
dbGrid.DataBind();
}
public void CreateFormat()
{
//创建绑定列
...
//创建模板列
TemplateColumn myTemplateCol=new TemplateColumn();
ColumnTemplate myCol=new ColumnTemplate("chkEdit");
myTemplateCol.ItemTemplate=myCol;
ColumnTemplate myCol1=new ColumnTemplate("chkHeader");
myTemplateCol.HeaderTemplate=myCol1;
dbGrid.Columns.AddAt(0,myTemplateCol);
}
///  ColumnTemplate 从ITemplate继承。
public class ColumnTemplate : ITemplate
{
public string chkName;
public  ColumnTemplate(string strName){
chkName=strName;}
public void InstantiateIn(Control container){
CheckBox cb = new CheckBox();
cb.ID=chkName;
container.Controls.Add(cb); }
}
我怎么在类ColumnTemplate中加入checkbox的事件CheckedChanged?
______________________________________________________________________________________________
答1:
cb.CheckedChanged+=new EventHandler(你的事件);
______________________________________________________________________________________________
答2:
void ITemplate.InstantiateIn(Control container)
{
CheckBox cb = new CheckBox();
cb.ID=chkName;
cb.CheckedChanged += new EventHandler(this.BindData);
container.Controls.Add(cb);
}
public void BindData(object sender, EventArgs e)
{
CheckBox box = (CheckBox) sender;
DataGridItem container = (DataGridItem) box.NamingContainer;
box.Checked = false;
box.Enabled = (readOnly == true) ? false:true;
string data = ((DataRowView) container.DataItem)[dataField].ToString();
Type type = ((DataRowView)
container.DataItem).DataView.Table.Columns[dataField].DataType;
if (data.Length>0)
{
switch (type.ToString())
{
case "System.Boolean":
if ( data == "True")
{
box.Checked = true;
}
break;
default:
break;
}
}
}
______________________________________________________________________________________________
答3:
参考
http://www.codeproject.com/aspnet/datagridcheckbox.asp?print=true
______________________________________________________________________________________________
答4:
http://www.experts-exchange.com/Programming/Programming_Languages/C_Sharp/Q_20821175.html
______________________________________________________________________________________________
答5:
怎么加呀?