|
类CheckBoxColumn继承于模板列TemplateColumn,它实现DataGrid控件中仅包含CheckBox控件的模板列CheckBoxColumn。模板列CheckBoxColumn实现两种模板列,即只读的模板列和可编辑的模板列,它们分别由构造函数CheckBoxColumn(String Name)和CheckBoxColumn(bool Immediate Postback,String Name)实现。类CheckBoxColumn中的构造函数都创建一个子项CheckBoxItem,并根据模板列的属性设置子项的名称和是否为只读属性;类CheckBoxColumn还定义了子项的事件CheckedChanged,该事件在子项中的控件CheckBox的选择项改变时触发;类 CheckBoxColumn定义了回传属性AutoPostBack、数据域属性DataField。类CheckBoxColumn的程序代码如下:
public class CheckBoxColumn :System.Web.UI.WebControls.TemplateColumn { // // 初始化CheckBoxColumn. // public CheckBoxColumn(String Name) { //设置控件为只读 viewItem = new CheckBoxItem(false,Name); // SAW was false this.ItemTemplate = viewItem as ITemplate; //设置控件为可编辑的 editItem = new CheckBoxItem(true,Name); this.EditItemTemplate = editItem as ITemplate; } // // 初始化CheckBoxColumn,并设置控件的回传属性 // public CheckBoxColumn(bool ImmediatePostback,String Name) { //设置控件为只读 viewItem = new CheckBoxItem(ImmediatePostback,Name); this.ItemTemplate = viewItem as ITemplate; //设置控件为可编辑的 editItem = new CheckBoxItem(true,Name); this.EditItemTemplate = editItem as ITemplate; AutoPostBack = ImmediatePostback; } // // 设置控件CheckBoxColumn的事件 // public event EventHandler CheckedChanged { add { //添加事件
viewItem.CheckedChanged += value; editItem.CheckedChanged += value; } remove { //移除事件 viewItem.CheckedChanged -= value; editItem.CheckedChanged -= value; } } // // 定义控件的AutoPostBack属性 // public bool AutoPostBack { set{viewItem.AutoPostBack = value;editItem.AutoPostBack = value;} get{return viewItem.AutoPostBack;} } // // 定义控件的DataField属性 // public string DataField { get{return viewItem.DataField;} set{viewItem.DataField = value;editItem.DataField = value;} } // // 定义控件的viewItem // private CheckBoxItem viewItem; // // 定义控件的editItem // private CheckBoxItem editItem; }
|