您的位置:首页 > 其它

在DataGrid里面使用CheckBox的例子

2004-10-16 11:34 363 查看
在DataGrid使用CheckBox通常都使用客户端的控件,这样可以把值帮定到CheckBox里面,在服务器端通过string strID = Request["cbID"];获得客户端所选择的值。而且使用客户端控件的时候CheckBox的控件的id都不会被自动转变成别的ID,容易控制,方便做客户端校验。
本例子只是简单地说明了怎么帮定值到CheckBox上,和获得所选的值。

页面代码:
<%@ Page language="c#" Codebehind="CheckBoxTest.aspx.cs" AutoEventWireup="false" Inherits="WebTest.DataGridTest.CheckBoxTest" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>CheckBoxTest</title>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:DataGrid id="dtgView" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="id">
<ItemTemplate>
<INPUT type="checkbox" id=cbID name=cbID value='<%# DataBinder.Eval(Container, "DataItem.id") %>'>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="val" HeaderText="val"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
<P> </P>
<P>
</FONT>
<asp:Button id="btnGetResult" runat="server" Text="GetResult"></asp:Button></P>
</form>
</body>
</HTML>

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;

namespace WebTest.DataGridTest
{
/// <summary>
/// CheckBoxTest 的摘要说明。
/// </summary>
public class CheckBoxTest : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dtgView;
protected System.Web.UI.WebControls.Button btnGetResult;

DataTable dt;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
//帮定数据源
this.GetDT();
this.dtgView.DataSource = dt;
dtgView.DataBind();
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnGetResult.Click += new System.EventHandler(this.btnGetResult_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

//制造一个数据源
private void GetDT()
{
dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("val", typeof(string));
for(int i=0; i<=20; i++)
{
dt.Rows.Add(new object[]{i, "val_" + i.ToString()});
}
}

private void btnGetResult_Click(object sender, System.EventArgs e)
{
//获得CheckBox的值
string strID = Request["cbID"];
string [] IDs = new string[0];
//如果用户有选择CheckBox,就分解获得的字符串,得到用户选择的ID
if(strID != null && strID.Length > 0)
{
IDs = strID.Split(new char[]{','});
}
//获得用户选择的ID的个数
int i = IDs.Length;
Response.Write(String.Format("一共有{0}个ID被选:<BR>", i));
foreach (string ID in IDs)
{
Response.Write(ID);
Response.Write("<BR>");
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: