前台:
<%@ Page language="c#" Codebehind="DataGridCheckBox.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.DataGridCheckBox.DataGridCheckBox" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>为DataGrid添加CheckBox控件的例子</title>
</HEAD>
<body>
<form id="frmMain" method="post" runat="server">
<asp:datagrid id="dgMain" runat="server" PageSize="5" AllowPaging="True" Width="98%" AutoGenerateColumns="False"
Font-Size="9pt" Font-Names="宋体" DataKeyField="au_id">
<AlternatingItemStyle ForeColor="ControlText" BackColor="White"></AlternatingItemStyle>
<ItemStyle ForeColor="ControlText" BackColor="WhiteSmoke"></ItemStyle>
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="Black" VerticalAlign="Middle"
BackColor="Control"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="选项">
<HeaderStyle HorizontalAlign="Center" Width="50px"></HeaderStyle>
<ItemTemplate>
<INPUT id=SelectedID type=hidden value='<%# Server.HtmlEncode((string)DataBinder.Eval(Container.DataItem, "au_id"))%>' name=SelectedID runat="server">
<asp:CheckBox id="chkExport" Runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="au_id" ReadOnly="True" HeaderText="序号">
<HeaderStyle Width="50px"></HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn SortExpression="demo" HeaderText="标题">
<ItemTemplate>
<asp:Label id=lblColumn runat="server" Width="80%" Text='<%# Server.HtmlEncode((string)DataBinder.Eval(Container.DataItem, "au_lname"))%>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle NextPageText="上一页" PrevPageText="下一页"></PagerStyle>
</asp:datagrid><asp:button id="cmdSelectAll" runat="server" Text="全部选中"></asp:button><asp:button id="cmdFindSelected" runat="server" Text="删除选中的项目"></asp:button><br>
<asp:label id="Label1" runat="server"></asp:label>
<hr>
<asp:label id="Label2" runat="server"></asp:label></form>
</body>
</HTML>
后台:using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
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 System.Configuration;namespace eMeng.Exam.DataGridCheckBox
{
/// <summary>
/// DataGridCheckBox 的摘要说明。
/// 【孟宪会之精彩世界】
/// </summary>
public class DataGridCheckBox : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button cmdSelectAll;
protected System.Web.UI.WebControls.Button cmdFindSelected;
protected System.Web.UI.WebControls.DataGrid dgMain;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
DataView oDataView;
// string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
// + HttpContext.Current.Server.MapPath("../../aspxWeb.mdb.ascx");
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
dgMain.Columns[0].HeaderText = "选项";
dgMain.Columns[1].HeaderText = "序号";
dgMain.Columns[2].HeaderText = "标题";
cmdFindSelected.Text = "查看选中的项目";
if(!this.IsPostBack)
{
cmdSelectAll.Text = "全部选中";
RefreshGrid();
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
} /// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dgMain.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dgMain_PageIndexChanged);
this.cmdSelectAll.Click += new System.EventHandler(this.cmdSelectAll_Click);
this.cmdFindSelected.Click += new System.EventHandler(this.cmdFindSelected_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void cmdSelectAll_Click(object sender, System.EventArgs e)
{
selectAll();
} private void selectAll()
{
System.Web.UI.WebControls.CheckBox chkExport ;
if( cmdSelectAll.Text == "全部选中")
{
foreach(DataGridItem oDataGridItem in dgMain.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = true;
}
cmdSelectAll.Text = "全部不选";
}
else
{
foreach(DataGridItem oDataGridItem in dgMain.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = false;
}
cmdSelectAll.Text = "全部选中";
}
} private void RefreshGrid()
{
SqlDataAdapter sqlda ;
DataSet ds = new DataSet();
try
{
string sSQL = "Select * from authors";
SqlConnection sqlcon = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString1"]);
sqlda = new SqlDataAdapter(sSQL.ToString(),sqlcon);
sqlda.Fill(ds, "authors");
oDataView = new DataView(ds.Tables["authors"]);
dgMain.DataSource = oDataView;
sqlcon.Close();
}
catch(Exception ex)
{
Label1.Text = ex.Message.ToString();
}
dgMain.DataBind();
} private void cmdFindSelected_Click(object sender, System.EventArgs e)
{
System.Web.UI.WebControls.CheckBox chkExport;
System.Collections.ArrayList oExArgs = new System.Collections.ArrayList();
Label1.Text = "";
Label2.Text = "";
foreach(DataGridItem oDataGridItem in dgMain.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
if(chkExport.Checked)
{
//如果要进行删除,可以在这里构造sql语句进行删除
string sql = "DELETE FROM authors WHERE au_id ="
+ ((HtmlInputHidden)oDataGridItem.FindControl("SelectedID")).Value;
SqlConnection sqlcon=new SqlConnection(ConfigurationSettings.AppSettings["connectionString1"]);
SqlCommand cmd=new SqlCommand(sql,sqlcon);
sqlcon.Open();
try
{
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
Response.Write(ex.ToString());
}
sqlcon.Close();
}
}
RefreshGrid();
}
private void dgMain_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dgMain.CurrentPageIndex=e.NewPageIndex;
RefreshGrid();
}
}
}
<%@ Page language="c#" Codebehind="DataGridCheckBox.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.DataGridCheckBox.DataGridCheckBox" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>为DataGrid添加CheckBox控件的例子</title>
</HEAD>
<body>
<form id="frmMain" method="post" runat="server">
<asp:datagrid id="dgMain" runat="server" PageSize="5" AllowPaging="True" Width="98%" AutoGenerateColumns="False"
Font-Size="9pt" Font-Names="宋体" DataKeyField="au_id">
<AlternatingItemStyle ForeColor="ControlText" BackColor="White"></AlternatingItemStyle>
<ItemStyle ForeColor="ControlText" BackColor="WhiteSmoke"></ItemStyle>
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="Black" VerticalAlign="Middle"
BackColor="Control"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="选项">
<HeaderStyle HorizontalAlign="Center" Width="50px"></HeaderStyle>
<ItemTemplate>
<INPUT id=SelectedID type=hidden value='<%# Server.HtmlEncode((string)DataBinder.Eval(Container.DataItem, "au_id"))%>' name=SelectedID runat="server">
<asp:CheckBox id="chkExport" Runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="au_id" ReadOnly="True" HeaderText="序号">
<HeaderStyle Width="50px"></HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn SortExpression="demo" HeaderText="标题">
<ItemTemplate>
<asp:Label id=lblColumn runat="server" Width="80%" Text='<%# Server.HtmlEncode((string)DataBinder.Eval(Container.DataItem, "au_lname"))%>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle NextPageText="上一页" PrevPageText="下一页"></PagerStyle>
</asp:datagrid><asp:button id="cmdSelectAll" runat="server" Text="全部选中"></asp:button><asp:button id="cmdFindSelected" runat="server" Text="删除选中的项目"></asp:button><br>
<asp:label id="Label1" runat="server"></asp:label>
<hr>
<asp:label id="Label2" runat="server"></asp:label></form>
</body>
</HTML>
后台:using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
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 System.Configuration;namespace eMeng.Exam.DataGridCheckBox
{
/// <summary>
/// DataGridCheckBox 的摘要说明。
/// 【孟宪会之精彩世界】
/// </summary>
public class DataGridCheckBox : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button cmdSelectAll;
protected System.Web.UI.WebControls.Button cmdFindSelected;
protected System.Web.UI.WebControls.DataGrid dgMain;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
DataView oDataView;
// string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
// + HttpContext.Current.Server.MapPath("../../aspxWeb.mdb.ascx");
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
dgMain.Columns[0].HeaderText = "选项";
dgMain.Columns[1].HeaderText = "序号";
dgMain.Columns[2].HeaderText = "标题";
cmdFindSelected.Text = "查看选中的项目";
if(!this.IsPostBack)
{
cmdSelectAll.Text = "全部选中";
RefreshGrid();
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
} /// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dgMain.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dgMain_PageIndexChanged);
this.cmdSelectAll.Click += new System.EventHandler(this.cmdSelectAll_Click);
this.cmdFindSelected.Click += new System.EventHandler(this.cmdFindSelected_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void cmdSelectAll_Click(object sender, System.EventArgs e)
{
selectAll();
} private void selectAll()
{
System.Web.UI.WebControls.CheckBox chkExport ;
if( cmdSelectAll.Text == "全部选中")
{
foreach(DataGridItem oDataGridItem in dgMain.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = true;
}
cmdSelectAll.Text = "全部不选";
}
else
{
foreach(DataGridItem oDataGridItem in dgMain.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = false;
}
cmdSelectAll.Text = "全部选中";
}
} private void RefreshGrid()
{
SqlDataAdapter sqlda ;
DataSet ds = new DataSet();
try
{
string sSQL = "Select * from authors";
SqlConnection sqlcon = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString1"]);
sqlda = new SqlDataAdapter(sSQL.ToString(),sqlcon);
sqlda.Fill(ds, "authors");
oDataView = new DataView(ds.Tables["authors"]);
dgMain.DataSource = oDataView;
sqlcon.Close();
}
catch(Exception ex)
{
Label1.Text = ex.Message.ToString();
}
dgMain.DataBind();
} private void cmdFindSelected_Click(object sender, System.EventArgs e)
{
System.Web.UI.WebControls.CheckBox chkExport;
System.Collections.ArrayList oExArgs = new System.Collections.ArrayList();
Label1.Text = "";
Label2.Text = "";
foreach(DataGridItem oDataGridItem in dgMain.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
if(chkExport.Checked)
{
//如果要进行删除,可以在这里构造sql语句进行删除
string sql = "DELETE FROM authors WHERE au_id ="
+ ((HtmlInputHidden)oDataGridItem.FindControl("SelectedID")).Value;
SqlConnection sqlcon=new SqlConnection(ConfigurationSettings.AppSettings["connectionString1"]);
SqlCommand cmd=new SqlCommand(sql,sqlcon);
sqlcon.Open();
try
{
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
Response.Write(ex.ToString());
}
sqlcon.Close();
}
}
RefreshGrid();
}
private void dgMain_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dgMain.CurrentPageIndex=e.NewPageIndex;
RefreshGrid();
}
}
}
解决方案 »
- 求高手分析。 网上看的个项目比较有意思。。。 这也能实现?
- 怎么办啊?对于我太难了,有老各位了。
- Session["ssbmid"]和Session["ssbmid"].TOString()有什么区别!
- 初学者想请教一下,为什么我的第一个textarea的程序在获取中文内容是会变成一系列的乱码阿,希望大家帮忙~~
- 问个小问题
- 设置数据库主健的类型问题。(简单问题)
- 加到100分,再求解决使用iframe的问题
- 【求助】请问 WEBSERVICE 怎么控制谁来访问
- 在asp.net中怎样在窗体关闭时释放sqldatareader和dataview对象?
- 对DATESET数据集进行update更新是不是必须用InsertCommand?急急急!!!
- 如何在.CS文件中写HTML语言,目的是做出等同HTML页面的效果
- 在弹出的对话框中如何让用户选择取消或者确认
执行删除的时候,直接Request.From[checkbox名字],就是你所选择的了。
谢谢楼上2位!