Default.aspx
View Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="Index" %> <!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> </head> <body class="Font"> <form id="form1" runat="server"> <div style="text-align: left" align="left"><asp:Panel ID="Panel2" runat="server"> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound" OnSelectedIndexChanging="GridView1_SelectedIndexChanging" Font-Size="9pt" AllowPaging="True" EmptyDataText="没有相关数据可以显示!" OnPageIndexChanging="GridView1_PageIndexChanging" CellPadding="4" ForeColor="#333333" GridLines="None"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:CheckBox ID="cbSingleOrMore" runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="id" HeaderText="信息ID" /> <asp:BoundField DataField="name" HeaderText="信息主题" /> <asp:BoundField DataField="type" HeaderText="信息分类" /> <asp:BoundField DataField="content" HeaderText="发布内容" /> <asp:BoundField DataField="userName" HeaderText="发布人" /> <asp:BoundField DataField="lineMan" HeaderText="联系人" /> <asp:BoundField DataField="issueDate" HeaderText="发布时间" DataFormatString="{0:d}" /> </Columns> <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="#FFFBD6" ForeColor="#333333" /> <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" /> <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Right" /> <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView> </asp:Panel> <asp:CheckBox ID="cbAll" runat="server" AutoPostBack="True" Font-Size="9pt" OnCheckedChanged="cbAll_CheckedChanged" Text="全选/反选" /> <asp:Button ID="btnDeleteMore" runat="server" Font-Size="9pt" Text="部分删除或全部删除" OnClick="btnDeleteMore_Click" onload="btnDeleteMore_Load" Width="134px" /></td> <asp:Button ID="btnRre" runat="server" Font-Size="9pt" Text="取消部分或全部选择" OnClick="btnRre_Click" Width="126px" /> <asp:Button ID="btnUpdateTime" runat="server" onclick="btnUpdateTime_Click" Text="更新发布时间" /> </div> </form> </body> </html>
Default.aspx.cs
View Code
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class Index : System.Web.UI.Page { SqlConnection sqlcon; string strCon = ConfigurationManager.AppSettings["conStr"]; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.GV_DataBind(); } } public void GV_DataBind() { string sqlstr = "select * from tb_inf "; sqlcon = new SqlConnection(strCon); SqlDataAdapter da = new SqlDataAdapter(sqlstr, sqlcon); DataSet ds = new DataSet(); sqlcon.Open(); da.Fill(ds, "tb_inf05"); sqlcon.Close(); this.GridView1.DataSource = ds; this.GridView1.DataKeyNames = new string[] { "id" }; this.GridView1.DataBind(); if (GridView1.Rows.Count > 0) { return;//有数据,不要处理 } else//显示表头并显示没有数据的提示信息 { StrHelper.GridViewHeader(GridView1); } } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string gIntro = e.Row.Cells[4].Text; e.Row.Cells[4].Text = StrHelper.GetFirstString(gIntro, 12); } } protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) { string id = this.GridView1.DataKeys[e.NewSelectedIndex].Value.ToString(); sqlcon = new SqlConnection(strCon); SqlCommand com = new SqlCommand("select [check] from tb_inf where id='" + id + "'", sqlcon); sqlcon.Open(); string count = Convert.ToString(com.ExecuteScalar()); if (count == "False") { count = "1"; } else { count = "0"; } com.CommandText = "update tb_inf set [check]=" + count + " where id=" + id; com.ExecuteNonQuery(); sqlcon.Close(); this.GV_DataBind(); } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { this.GridView1.PageIndex = e.NewPageIndex; this.GV_DataBind(); } protected void cbAll_CheckedChanged(object sender, EventArgs e) { for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("cbSingleOrMore"); if (cbAll.Checked == true) { cbox.Checked = true; } else { cbox.Checked = false; } } } protected void btnDeleteMore_Click(object sender, EventArgs e) { sqlcon = new SqlConnection(strCon);//创建数据库连接 SqlCommand sqlcom;//创建命令对象变量 for (int i = 0; i <= GridView1.Rows.Count - 1; i++)//循环遍历GridView控件每一项 { CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("cbSingleOrMore");//查找嵌套在GridView控件中的单选框 if (cbox.Checked == true)//如果操作为选中状态 { string strSql = "delete from tb_inf where id=@id";//定义带参数的删除语句 if (sqlcon.State.Equals(ConnectionState.Closed)) sqlcon.Open();//打开数据加连接 sqlcom = new SqlCommand(strSql, sqlcon);//创建执行删除操作的命令对象 SqlTransaction tran = sqlcon.BeginTransaction();//实例化事务对象 sqlcom.Transaction = tran;//将事务对象与命令对象关联 SqlParameter prame = new SqlParameter("@id", SqlDbType.Int, 4);//定义参数 sqlcom.Parameters.Add(prame);//添加参数 sqlcom.Parameters["@id"].Value = GridView1.DataKeys[i].Value.ToString();//参数赋值 try { sqlcom.ExecuteNonQuery();//执行SQL语句 tran.Commit();//提交事务 } catch (SqlException ex) { StrHelper.Alert(string.Format("SQL语句发生了异常,异常如下所示:\n{0}", ex.Message)); tran.Rollback();//事务回滚 } finally { sqlcon.Close();//关闭数据库连接 } } } GV_DataBind();//重新绑定数据控件 } protected void btnRre_Click(object sender, EventArgs e) { cbAll.Checked = false; for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("cbSingleOrMore"); cbox.Checked = false; } } protected void btnDeleteMore_Load(object sender, EventArgs e) { ((Button)sender).Attributes["onclick"] = "return confirm('您确定要删除吗?')"; } protected void btnUpdateTime_Click(object sender, EventArgs e) { sqlcon = new SqlConnection(strCon);//创建数据库连接 SqlCommand sqlcom;//创建命令对象变量 for (int i = 0; i <= GridView1.Rows.Count - 1; i++)//循环遍历GridView控件每一项 { CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("cbSingleOrMore"); if (cbox.Checked == true) { string strSql = "Update tb_inf set issueDate=@UpdateTime where id=@id"; if (sqlcon.State.Equals(ConnectionState.Closed)) sqlcon.Open();//打开数据库连接 sqlcom = new SqlCommand(strSql, sqlcon); SqlParameter[] prams = { new SqlParameter("@UpdateTime",SqlDbType.DateTime), new SqlParameter("@id",SqlDbType.Int,4) }; prams[0].Value = DateTime.Now; prams[1].Value = GridView1.DataKeys[i].Value; foreach (SqlParameter parameter in prams) { sqlcom.Parameters.Add(parameter); } if (sqlcom.ExecuteNonQuery() > 0) { StrHelper.Alert("更新成功!"); } else { StrHelper.Alert("更新失败!"); } sqlcon.Close(); } } GV_DataBind(); } }
StrHelper.cs
View Code
using System; using System.Data; using System.Configuration; 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; //引入如下命名空间 using System.Text.RegularExpressions; using System.Text; /// <summary> ///StrHelper 的摘要说明 /// </summary> public class StrHelper { public StrHelper(){} /// <summary> /// 截取字符串函数 /// </summary> /// <param name="str">所要截取的字符串</param> /// <param name="num">截取字符串的长度</param> /// <returns></returns> static public string GetSubString(string str, int num) { #region return (str.Length > num) ? str.Substring(0, num) + "..." : str; #endregion } /// <summary> /// 截取字符串优化版 /// </summary> /// <param name="stringToSub">所要截取的字符串</param> /// <param name="length">截取字符串的长度</param> /// <returns></returns> public static string GetFirstString(string stringToSub, int length) { #region Regex regex = new Regex("[\u4e00-\u9fa5]+", RegexOptions.Compiled); char[] stringChar = stringToSub.ToCharArray(); StringBuilder sb = new StringBuilder(); int nLength = 0; bool isCut = false; for (int i = 0; i < stringChar.Length; i++) { if (regex.IsMatch((stringChar[i]).ToString()))//regex.IsMatch指示正则表达式在输入字符串中是否找到匹配项 { sb.Append(stringChar[i]);//将信息追加到当前 StringBuilder 的结尾 nLength += 2; } else { sb.Append(stringChar[i]); nLength = nLength + 1; } if (nLength > length)//替换字符串 { isCut = true; break; } } if (isCut) return sb.ToString() + "..."; else return sb.ToString(); #endregion } /// 弹出JavaScript小窗口 /// </summary> /// <param name="js">窗口信息</param> public static void Alert(string message) { #region string js = @"<Script language='JavaScript'> alert('" + message + "');</Script>"; HttpContext.Current.Response.Write(js); #endregion } public static void GridViewHeader(GridView gdv)//显示表头并显示没有数据的提示信息 { //表头的设置 GridViewRow row = new GridViewRow(-1, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal); foreach (DataControlField field in gdv.Columns) { TableCell cell = new TableCell(); cell.Text = field.HeaderText; cell.Width = field.HeaderStyle.Width; cell.Height = field.HeaderStyle.Height; cell.ForeColor = field.HeaderStyle.ForeColor; cell.Font.Size = field.HeaderStyle.Font.Size; cell.Font.Bold = field.HeaderStyle.Font.Bold; cell.Font.Name = field.HeaderStyle.Font.Name; cell.Font.Strikeout = field.HeaderStyle.Font.Strikeout; cell.Font.Underline = field.HeaderStyle.Font.Underline; cell.BackColor = field.HeaderStyle.BackColor; cell.VerticalAlign = field.HeaderStyle.VerticalAlign; cell.HorizontalAlign = field.HeaderStyle.HorizontalAlign; cell.CssClass = field.HeaderStyle.CssClass; cell.BorderColor = field.HeaderStyle.BorderColor; cell.BorderStyle = field.HeaderStyle.BorderStyle; cell.BorderWidth = field.HeaderStyle.BorderWidth; row.Cells.Add(cell); } TableItemStyle headStyle = gdv.HeaderStyle; TableItemStyle emptyStyle = gdv.EmptyDataRowStyle; emptyStyle.Width = headStyle.Width; emptyStyle.Height = headStyle.Height; emptyStyle.ForeColor = headStyle.ForeColor; emptyStyle.Font.Size = headStyle.Font.Size; emptyStyle.Font.Bold = headStyle.Font.Bold; emptyStyle.Font.Name = headStyle.Font.Name; emptyStyle.Font.Strikeout = headStyle.Font.Strikeout; emptyStyle.Font.Underline = headStyle.Font.Underline; emptyStyle.BackColor = headStyle.BackColor; emptyStyle.VerticalAlign = headStyle.VerticalAlign; emptyStyle.HorizontalAlign = headStyle.HorizontalAlign; emptyStyle.CssClass = headStyle.CssClass; emptyStyle.BorderColor = headStyle.BorderColor; emptyStyle.BorderStyle = headStyle.BorderStyle; emptyStyle.BorderWidth = headStyle.BorderWidth; //空白行的设置 GridViewRow row1 = new GridViewRow(0, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal); TableCell cell1 = new TableCell(); cell1.Text = "没有相关数据可以显示!"; cell1.BackColor = System.Drawing.Color.White; row1.Cells.Add(cell1); cell1.ColumnSpan = 6;//合并列 if (gdv.Controls.Count == 0) { gdv.Page.Response.Write("<script language='javascript'>alert('必须在初始化表格类之前执行DataBind方法并设置EmptyDataText属性不为空!');</script>"); } else { gdv.Controls[0].Controls.Clear(); gdv.Controls[0].Controls.AddAt(0, row); gdv.Controls[0].Controls.AddAt(1, row1); } } }