📄 testcheckbox.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Example_12_5.ColumnTemplates;
namespace Example_12_5
{
/// <summary>
/// TestCheckBox 的摘要说明。
/// </summary>
public class TestCheckBox : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label CheckMsg;
protected System.Web.UI.WebControls.Button ShowMsg;
protected System.Web.UI.WebControls.DataGrid myDataGrid;
private void Page_Load(object sender, System.EventArgs e)
{
AddColumnToDataGrid();
BindData();
}
private DataTable CreateDataSource()
{
///创建数据表及其列
DataTable dataTable = new DataTable("MyData");
dataTable.Columns.Add(new DataColumn("Name",typeof(string)));
dataTable.Columns.Add(new DataColumn("Type",typeof(string)));
dataTable.Columns.Add(new DataColumn("Data",typeof(string)));
dataTable.Columns.Add(new DataColumn("Boolean",typeof(bool)));
///添加五行数据
for(int i = 0; i < 5; i++)
{
///添加一行数据
DataRow row = dataTable.NewRow();
foreach(DataColumn column in dataTable.Columns)
{
///添加CheckBox控件的数据
if(column.DataType == typeof(bool))
{
row[column] = (i % 2 == 0) ? true:false;
}
else
{ ///添加其他列的数据
row[column] = column.ColumnName + i.ToString();
}
}
dataTable.Rows.Add(row);
}
///返回创建的数据表
return(dataTable);
}
private void AddColumnToDataGrid()
{
///添加一列复选框
CheckBoxColumn checkCol = new CheckBoxColumn(true,"MyBox");
checkCol.DataField = "Boolean";
checkCol.HeaderText = "复选框";
///添加复选框的事件
checkCol.CheckedChanged += new EventHandler(checkCol_CheckedChanged);
///添加到myDataGrid控件中
myDataGrid.Columns.Add(checkCol);
}
private void BindData()
{
///绑定myDataGrid控件的数据
myDataGrid.DataSource = CreateDataSource();
myDataGrid.DataBind();
}
private void checkCol_CheckedChanged(object sender,EventArgs e)
{
///设置CheckBox控件的事件
CheckMsg.Text = "";
CheckBox box = (CheckBox) sender;
if(box.Checked == true)
{
///获取选择的CheckBox控件所在的DataGridItem
DataGridItem container = (DataGridItem) box.NamingContainer;
///获取每列的值
GetString(container,CheckMsg,"Name");
GetString(container,CheckMsg,"Type");
GetString(container,CheckMsg,"Data");
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ShowMsg.Click += new System.EventHandler(this.ShowMsg_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void ShowMsg_Click(object sender, System.EventArgs e)
{
CheckMsg.Text = "";
foreach(DataGridItem container in myDataGrid.Items)
{ ///获取每列的值
CheckBox cBox = (CheckBox)container.FindControl("MyBox");
if(cBox != null)
{
if(cBox.Checked == true)
{ ///获取选中列的值
GetString(container,CheckMsg,"Name");
GetString(container,CheckMsg,"Type");
GetString(container,CheckMsg,"Data");
}
}
}
}
private void GetString(DataGridItem container,Label CheckMsg,String Name)
{ ///获取单个列的值
Label tempLabel = (Label)container.FindControl(Name);
if(tempLabel != null)
{
CheckMsg.Text += tempLabel.Text;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -