📄 checkitem.cs
字号:
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace Example_12_5.ColumnTemplates
{
internal class CheckBoxItem : ITemplate
{
/// <summary>
/// CheckBoxItem的构造函数
/// </summary>
/// <param name="editable">控件的是否为可编辑</param>
public CheckBoxItem(bool editable,string Name)
{
name = Name;
readOnly = (editable==true)?false:true;
}
/// <summary>
/// 实例化CheckBox控件,并添加到容器中
/// </summary>
/// <param name="container">添加控件的容器</param>
void ITemplate.InstantiateIn(Control container)
{
///创建CheckBox控件
CheckBox box = new CheckBox();
///设置控件的属性和事件
box.ID = name;
box.DataBinding += new EventHandler(this.BindData);
box.AutoPostBack = autoPostBack;
box.CheckedChanged += new EventHandler(this.OnCheckChanged);
container.Controls.Add(box);
}
/// <summary>
///定义控件的事件CheckChanged
/// </summary>
public event EventHandler CheckedChanged;
/// <summary>
/// 设置控件的事件CheckChanged
/// </summary>
private void OnCheckChanged(object sender, EventArgs e)
{
if (CheckedChanged != null)
{
CheckedChanged(sender, e);
}
}
/// <summary>
///定义控件的属性Name
/// </summary>
private string name;
public string Name
{
get
{
return(name);
}
set
{
name = value;
}
}
/// <summary>
/// 定义控件的属性DataField
/// </summary>
private string dataField;
public string DataField
{
get
{
return dataField;
}
set
{
dataField=value;
}
}
/// <summary>
/// 定义控件的属性AutoPostback
/// </summary>
private bool autoPostBack = false;
public bool AutoPostBack
{
set
{
autoPostBack = value;
}
get
{
return autoPostBack;
}
}
/// <summary>
/// 定义控件的数据绑定函数BindData()
/// </summary>
private void BindData(object sender, EventArgs e)
{
///找到CheckBox控件
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 t = ((DataRowView)container.DataItem).DataView.Table.Columns[dataField].DataType;
if (data.Length>0)
{
switch (t.ToString())
{ ///设置控件的值
case "System.Boolean":
if(( data == "True") || (data == "true"))
{
box.Checked = true;
}
break;
default:
break;
}
}
}
/// <summary>
/// 定义控件的属性readOnly
/// </summary>
private bool readOnly = true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -