62,254
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class Default3 : System.Web.UI.Page
{
protected GridView gridview;
protected Button button;
protected Label label;
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void CreateChildControls()
{
base.CreateChildControls();
gridview = new GridView();
gridview.AutoGenerateColumns = true;
gridview.DataSource = GetDataTable();
gridview.DataKeyNames = new string[] { "number" };
////加载checkbox
TemplateField tfColumn = new TemplateField();
tfColumn.HeaderText = "";
tfColumn.ItemTemplate = new MyTemplate("", DataControlRowType.DataRow);
gridview.Columns.Add(tfColumn);
gridview.DataBind();
Controls.Add(gridview);
label = new Label();
label.Text = "This is Label..";
Controls.Add(label);
button = new Button();
button.Text = "测试";
button.Click += new EventHandler(button_Click);
Controls.Add(button);
}
protected DataTable GetDataTable()
{
DataTable dt = new DataTable("cart");
DataColumn dc1 = new DataColumn("prizename", Type.GetType("System.String"));
DataColumn dc2 = new DataColumn("point", Type.GetType("System.Int16"));
DataColumn dc3 = new DataColumn("number", Type.GetType("System.Int16"));
DataColumn dc4 = new DataColumn("totalpoint", Type.GetType("System.Int64"));
DataColumn dc5 = new DataColumn("mm", Type.GetType("System.Boolean"));
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Columns.Add(dc4);
dt.Columns.Add(dc5);
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr["prizename"] = "中国";
dr["point"] = 10;
dr["number"] = i;
dr["totalpoint"] = 10;
dr["mm"] = true;
dt.Rows.Add(dr);
}
return dt;
}
public void button_Click(object sender, EventArgs e)
{
try
{
label.Text += "<br>start";
int k = 0;
foreach (GridViewRow gvr in gridview.Rows)
{
label.Text += "k="+k;
K++;
if (gvr.RowType == DataControlRowType.DataRow)
{
CheckBox ch = (CheckBox)gvr.FindControl("CheckBox1");
if (ch != null)
{
label.Text += ch.Checked + "<br>";
//if (ch.Checked == true)
//{
// label.Text += ch.Checked;
//}
}
}
}
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
}
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
}
}
public class MyTemplate : ITemplate
{
private string strColumnName;
private DataControlRowType dcrtColumnType;
public MyTemplate()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//// <summary>
/// 动态添加模版列
/// </summary>
/// <param name="strColumnName">列名</param>
/// <param name="dcrtColumnType">列的类型</param>
public MyTemplate(string strColumnName, DataControlRowType dcrtColumnType)
{
this.strColumnName = strColumnName;
this.dcrtColumnType = dcrtColumnType;
}
public void InstantiateIn(Control ctlContainer)
{
switch (dcrtColumnType)
{
case DataControlRowType.Header: //列标题
Literal ltr = new Literal();
ltr.Text = strColumnName;
ctlContainer.Controls.Add(ltr);
break;
case DataControlRowType.DataRow: //模版列内容——加载CheckBox
CheckBox cb = new CheckBox();
cb.ID = "CheckBox1";
cb.Checked = false;
ctlContainer.Controls.Add(cb);
break;
}
}
}