//删除
protected void Button5_Click(object sender, EventArgs e)
{
try
{
int count = this.GridView1.Rows.Count;
for (int i = 0; i < count; i++)
{
CheckBox chk =(CheckBox)this.GridView1.Rows[i].FindControl("Itemchk");
if (chk.Checked)
{
int id = Convert.ToInt32(this.GridView1.Rows[i].Cells[0].Text);
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["meetingConn"].ConnectionString);
conn.Open();
string sqlstr = "delete from meetroom where id='"+id+"'";
SqlCommand cmd = new SqlCommand(sqlstr,conn);
cmd.ExecuteNonQuery();
conn.Close();
Response.Write("<script>alert('删除成功');</script>");
}
this.DataBindMeetroom();
}
}
catch
{ Response.Write("<script>alert('服务器忙,请一会再试');</script>");}上面是删除按钮的代码。这是前台的代码:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="EditRoom.aspx.cs" Inherits="EditRoom" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table style="width: 491px; height: 87px;">
<tr>
<td align="center" style="width: 563px; color: white; background-color: #0066ff; height: 1px;">
会议室管理--管理会议室</td>
</tr>
<tr>
<td style="width: 563px; height: 98px;" align="center">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowCreated="Gv_RowCreated" Width="538px" Height="136px" CellPadding="4">
<Columns>
<asp:BoundField DataField="id" HeaderText="编号" ReadOnly="True"/>
<asp:BoundField DataField="roomname" HeaderText="会议室名称" ReadOnly="True" />
<asp:BoundField DataField="roomaddr" HeaderText="会议室地点" ReadOnly="True" />
<asp:BoundField DataField="roomcount" HeaderText="可容纳人数" ReadOnly="True" />
<asp:TemplateField>
<HeaderTemplate>
编辑
</HeaderTemplate>
<ItemTemplate>
<a href="ChangeRoom.aspx?id=<%#DataBinder.Eval(Container.DataItem,"id") %>">编辑</a>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="Itemchk" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="White" />
<PagerStyle BackColor="White" />
<HeaderStyle BackColor="SkyBlue" />
</asp:GridView>
</td>
</tr>
<tr>
<td style="width: 563px">
共有<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>条记录,当前是第<asp:Label
ID="Label2" runat="server" Text="1" Width="15px"></asp:Label>/<asp:Label ID="Label3" runat="server"
Text="Label"></asp:Label>页<asp:Button ID="Button1" runat="server" Text="首页" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="上页" OnClick="Button2_Click" />
<asp:Button ID="Button3" runat="server" Text="下页" OnClick="Button3_Click" />
<asp:Button ID="Button4" runat="server" Text="末页" OnClick="Button4_Click" /></td>
</tr>
<tr>
<td style="width: 563px; height: 20px;">
<asp:CheckBox
ID="CheckBox1" runat="server" Text="全选" Height="22px" AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged" Width="54px" />
<asp:Button ID="Button5" runat="server" Text="删除选定项" OnClick="Button5_Click" /></td>
</tr>
</table>
</asp:Content>每次一点击删除按钮的时候,CheckBox选定的项自动取消选定的,而且删除时间也没有执行,可是
去掉 if (chk.Checked)这句以后,可以执行删除,但是第一次执行时,删除了所有的id为基数的项,以后在执行的时候则按顺序一条一条的执行。
protected void Button5_Click(object sender, EventArgs e)
{
try
{
int count = this.GridView1.Rows.Count;
for (int i = 0; i < count; i++)
{
CheckBox chk =(CheckBox)this.GridView1.Rows[i].FindControl("Itemchk");
if (chk.Checked)
{
int id = Convert.ToInt32(this.GridView1.Rows[i].Cells[0].Text);
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["meetingConn"].ConnectionString);
conn.Open();
string sqlstr = "delete from meetroom where id='"+id+"'";
SqlCommand cmd = new SqlCommand(sqlstr,conn);
cmd.ExecuteNonQuery();
conn.Close();
Response.Write("<script>alert('删除成功');</script>");
}
this.DataBindMeetroom();
}
}
catch
{ Response.Write("<script>alert('服务器忙,请一会再试');</script>");}上面是删除按钮的代码。这是前台的代码:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="EditRoom.aspx.cs" Inherits="EditRoom" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table style="width: 491px; height: 87px;">
<tr>
<td align="center" style="width: 563px; color: white; background-color: #0066ff; height: 1px;">
会议室管理--管理会议室</td>
</tr>
<tr>
<td style="width: 563px; height: 98px;" align="center">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowCreated="Gv_RowCreated" Width="538px" Height="136px" CellPadding="4">
<Columns>
<asp:BoundField DataField="id" HeaderText="编号" ReadOnly="True"/>
<asp:BoundField DataField="roomname" HeaderText="会议室名称" ReadOnly="True" />
<asp:BoundField DataField="roomaddr" HeaderText="会议室地点" ReadOnly="True" />
<asp:BoundField DataField="roomcount" HeaderText="可容纳人数" ReadOnly="True" />
<asp:TemplateField>
<HeaderTemplate>
编辑
</HeaderTemplate>
<ItemTemplate>
<a href="ChangeRoom.aspx?id=<%#DataBinder.Eval(Container.DataItem,"id") %>">编辑</a>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="Itemchk" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="White" />
<PagerStyle BackColor="White" />
<HeaderStyle BackColor="SkyBlue" />
</asp:GridView>
</td>
</tr>
<tr>
<td style="width: 563px">
共有<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>条记录,当前是第<asp:Label
ID="Label2" runat="server" Text="1" Width="15px"></asp:Label>/<asp:Label ID="Label3" runat="server"
Text="Label"></asp:Label>页<asp:Button ID="Button1" runat="server" Text="首页" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="上页" OnClick="Button2_Click" />
<asp:Button ID="Button3" runat="server" Text="下页" OnClick="Button3_Click" />
<asp:Button ID="Button4" runat="server" Text="末页" OnClick="Button4_Click" /></td>
</tr>
<tr>
<td style="width: 563px; height: 20px;">
<asp:CheckBox
ID="CheckBox1" runat="server" Text="全选" Height="22px" AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged" Width="54px" />
<asp:Button ID="Button5" runat="server" Text="删除选定项" OnClick="Button5_Click" /></td>
</tr>
</table>
</asp:Content>每次一点击删除按钮的时候,CheckBox选定的项自动取消选定的,而且删除时间也没有执行,可是
去掉 if (chk.Checked)这句以后,可以执行删除,但是第一次执行时,删除了所有的id为基数的项,以后在执行的时候则按顺序一条一条的执行。
use office
go
create table meetroom (id int identity(1,1),roomname nvarchar(20),roomaddr nvarchar(30),roomcount int)
goinsert into meetroom
select '计算机2000-1班' as roomname,'教研楼A栋301室' as roomaddr,30 as roomcount
union
select '计算机2000-2班' as roomname,'教研楼A栋302室' as roomaddr,35 as roomcount
union
select '计算机2000-3班' as roomname,'教研楼A栋303室' as roomaddr,40 as roomcount<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EditRoom.aspx.cs" Inherits="EditRoom" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script language="javascript" type="text/javascript">
var hidCtlId = "<%=hidSelectId.ClientID%>"; function checkSelectId() { var hidValId = document.getElementById(hidCtlId);
if (hidValId.value.length == 0) {
alert("请先选择要操作的数据");
return false;
}
return true;
} function chkSelectAll(spanckb) {
var thebox = spanckb;
oState = thebox.checked; oItem = document.getElementsByTagName("input"); for (i = 0; i < oItem.length; i++) {
if (oItem[i].type == "checkbox" & oItem[i].id != thebox.id) {
if (oItem[i].checked != oState)
oItem[i].click();
}
}
} function setSelectVal(spanckb, id) {
var thebox = spanckb;
oState = thebox.checked;
if (oState) {
attachVal(id);
}
else {
detachVal(id);
}
} function attachVal(id) {
var hidValId = document.getElementById(hidCtlId);
var selValue = ',' + hidValId.value;
temp = ',' + id + ',';
// 不存在则添加
if (selValue.indexOf(temp) == -1) {
hidValId.value = hidValId.value + id + ',';
}
} function detachVal(id) {
var hidValId = document.getElementById(hidCtlId);
var selValue = ',' + hidValId.value;
temp = ',' + id + ',';
selValue = selValue.replace(temp, ',');
hidValId.value = selValue.substr(1);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style="width: 491px; height: 87px;">
<tr>
<td align="center" style="width: 563px; color: white; background-color: #0066ff; height: 1px;">
会议室管理--管理会议室 </td>
</tr>
<tr>
<td style="width: 563px; height: 98px;" align="center">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
OnRowCreated="Gv_RowCreated" Width="538px" Height="136px" CellPadding="4"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="id" HeaderText="编号" ReadOnly="True"/>
<asp:BoundField DataField="roomname" HeaderText="会议室名称" ReadOnly="True" />
<asp:BoundField DataField="roomaddr" HeaderText="会议室地点" ReadOnly="True" />
<asp:BoundField DataField="roomcount" HeaderText="可容纳人数" ReadOnly="True" />
<asp:TemplateField>
<HeaderTemplate>
编辑
</HeaderTemplate>
<ItemTemplate>
<a href="ChangeRoom.aspx?id= <%#DataBinder.Eval(Container.DataItem,"id") %>">编辑 </a>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="Itemchk" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="White" />
<PagerStyle BackColor="White" />
<HeaderStyle BackColor="SkyBlue" />
</asp:GridView>
</td>
</tr>
<tr>
<td style="width: 563px">
共有 <asp:Label ID="Label1" runat="server" Text="Label"> </asp:Label>条记录,当前是第 <asp:Label
ID="Label2" runat="server" Text="1" Width="15px"> </asp:Label>/ <asp:Label ID="Label3" runat="server"
Text="Label"> </asp:Label>页 <asp:Button ID="Button1" runat="server" Text="首页" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="上页" OnClick="Button2_Click" />
<asp:Button ID="Button3" runat="server" Text="下页" OnClick="Button3_Click" />
<asp:Button ID="Button4" runat="server" Text="末页" OnClick="Button4_Click" /> </td>
</tr>
<tr>
<td style="width: 563px; height: 20px;">
<input id="hidSelectId" runat="server" type="hidden" />
<asp:CheckBox
ID="CheckBox1" runat="server" Text="全选" Height="22px" Width="54px" />
<asp:Button ID="Button5" runat="server" Text="删除选定项" OnClick="Button5_Click" /> </td>
</tr>
</table> </div>
</form>
</body>
</html>
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;public partial class EditRoom : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 全选
CheckBox1.Attributes.Add("onclick", "chkSelectAll(this);");
// 加载数据
LoadData();
}
} private void LoadData()
{
GridView1.DataSource = GetDataList();
GridView1.DataBind();
}
/// <summary>
/// 获取数据
/// </summary>
/// <returns></returns>
private DataTable GetDataList()
{
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["meetingConn"].ConnectionString;
con.Open();
string sqlSelect = "Select * From meetroom";
SqlDataAdapter adapter = new SqlDataAdapter(sqlSelect, con);
DataTable dt = new DataTable();
adapter.Fill(dt);
return dt;
} private static string msg = "<script>alert('{0}');</script>"; /// <summary>
/// 提示信息
/// </summary>
/// <param name="strMsg"></param>
private void MessageShow(string strMsg)
{
Response.Write(string.Format(msg, strMsg));
} /// <summary>
/// 删除选择记录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button5_Click(object sender, EventArgs e)
{
if (hidSelectId.Value.Length == 0)
{
MessageShow("请选择要删除的记录.");
return;
}
try
{
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["meetingConn"].ConnectionString;
con.Open();
string sqlDelete = string.Format("Delete From meetroom where id in ({0})", hidSelectId.Value.TrimEnd(','));
SqlCommand cmd = new SqlCommand(sqlDelete);
cmd.Connection = con;
cmd.ExecuteNonQuery();
// 重新加载数据
LoadData();
MessageShow("删除成功.");
}
catch(Exception ex)
{
MessageShow(ex.Message);
}
} protected void Gv_RowCreated(object sender, GridViewRowEventArgs e)
{
//
} protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// 单条记录选择
CheckBox chkSelect = e.Row.FindControl("Itemchk") as CheckBox;
DataRowView drv = e.Row.DataItem as DataRowView;
string id = drv["Id"].ToString();
chkSelect.Attributes.Add("onclick", string.Format("setSelectVal(this,'{0}');", id));
}
}
protected void Button1_Click(object sender, EventArgs e)
{ }
protected void Button2_Click(object sender, EventArgs e)
{ }
protected void Button3_Click(object sender, EventArgs e)
{ }
protected void Button4_Click(object sender, EventArgs e)
{ }
}
你试着将上面的if语句修改一下