⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkitem.cs

📁 ASP C#代码实例 适合初学人士学习使用
💻 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 + -