024. asp.net中第一次使用GridView (设置鼠标经过时更换背景色)

时间:2023-03-08 17:41:17
024. asp.net中第一次使用GridView (设置鼠标经过时更换背景色)

1. 前端HTML代码

<%@ 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="cardNo" HeaderText="卡号" />
<asp:BoundField DataField="cardBound" HeaderText="内卡号" />
<asp:BoundField DataField="name" HeaderText="会员姓名" />
<asp:BoundField DataField="type" HeaderText="类型" />
<asp:BoundField DataField="createTime" HeaderText="创建时间" DataFormatString="{0:d}" />
<asp:BoundField DataField="stateBit" HeaderText="生效否" />
<asp:BoundField DataField="mobileID" HeaderText="机器码" />
</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" />
<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>

2. 后台CS文件代码:

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 = "server=.;database=TYW;uid=sa;pwd=123.456;";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.GV_DataBind();
} }
public void GV_DataBind()
{
string sqlstr = "select * from card ";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter da = new SqlDataAdapter(sqlstr, sqlcon);
DataSet ds = new DataSet();
sqlcon.Open();
da.Fill(ds, "card");
sqlcon.Close();
this.GridView1.DataSource = ds; //设置主键列, 作为后续操作(删除/更新/修改/查询)的重要依据, 可设置多列
this.GridView1.DataKeyNames = new string[] { "cardNo" };
this.GridView1.DataBind();
/*模拟GridView1.rows.count不大于0
this.GridView1.DataSource = null;
this.GridView1.DataBind();*/
if (GridView1.Rows.Count > )
{
return;//有数据,不要处理
}
else//显示表头并显示没有数据的提示信息
{
StrHelper.GridViewHeader(GridView1);
}
}
/*在创建gridView控件时,必须先为GridView的每一行创建一个GridViewRow对象,创建每一行时,将引发一个RowCreated事件;当行创建完毕,每一行GridViewRow就要绑定数据源中的数据,当绑定完成后,将引发RowDataBound事件.可以利用RowCreated事件来控制每一行绑定的控件,利用RowDataBound事件来控制每一行绑定的数据,也就是让数据如何呈现*/
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//当鼠标经过时更换行的背景色
if (e.Row.RowType == DataControlRowType.DataRow)//判定当前的行是否属于datarow类型的行
{
//当鼠标放上去的时候 先保存当前行的背景颜色 并给附一颜色
e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#7f9edb',this.style.fontWeight='';");
//当鼠标离开的时候 将背景颜色还原的以前的颜色
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor,this.style.fontWeight='';");
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
string gIntro = e.Row.Cells[].Text;
e.Row.Cells[].Text = StrHelper.GetFirstString(gIntro, );//如果字符串太长使用. . . 代替
} //内容提示为GridView第二行数据显示的内容,其索引值为1(注意:.NET中索引值都是从0开始)
//((LinkButton)e.Row.Cells[8].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('确认要删除信息主题:\"" + e.Row.Cells[1].Text + "\"吗?')");
} /*SelectedIndexChanging 发生在单击某一行的“选择”按钮以后,GridView 控件对相应的选择操作进行处理之前。*/
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 card where cardNo='" + id + "'", sqlcon);
sqlcon.Open();
string count = Convert.ToString(com.ExecuteScalar());
if (count == "False")
{
count = "";
}
else
{
count = "";
}
com.CommandText = "update card set [check]=" + count + " where cardNo=" + id;
com.ExecuteNonQuery();
sqlcon.Close();
this.GV_DataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.GridView1.PageIndex = e.NewPageIndex;
this.GV_DataBind();
} //更改Checked
protected void cbAll_CheckedChanged(object sender, EventArgs e)
{
for (int i = ; i <= GridView1.Rows.Count - ; 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 = ; i <= GridView1.Rows.Count - ; i++)//循环遍历GridView控件每一项
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("cbSingleOrMore");//查找嵌套在GridView控件中的单选框
if (cbox.Checked == true)//如果操作为选中状态
{
string strSql = "delete from card where cardNo=@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.VarChar, );//定义参数
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 = ; i <= GridView1.Rows.Count - ; 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 = ; i <= GridView1.Rows.Count - ; i++)//循环遍历GridView控件每一项
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("cbSingleOrMore");
if (cbox.Checked == true)
{
string strSql = "Update card set createTime=@UpdateTime where cardNo=@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.VarChar,)};
prams[].Value = DateTime.Now;
prams[].Value = GridView1.DataKeys[i].Value;
foreach (SqlParameter parameter in prams)
{
sqlcom.Parameters.Add(parameter);
}
if (sqlcom.ExecuteNonQuery() > )
{
StrHelper.Alert("更新成功!");
}
else
{
StrHelper.Alert("更新失败!");
}
sqlcon.Close();
}
}
GV_DataBind();
}
}

3. 工具类StrHelper代码:

 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(, 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 = ;
bool isCut = false;
for (int i = ; i < stringChar.Length; i++)
{
if (regex.IsMatch((stringChar[i]).ToString()))//regex.IsMatch指示正则表达式在输入字符串中是否找到匹配项
{
sb.Append(stringChar[i]);//将信息追加到当前 StringBuilder 的结尾
nLength += ;
}
else
{
sb.Append(stringChar[i]);
nLength = nLength + ;
}
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)//显示表头并显示没有数据的提示信息
{
//表头的设置. 注意在呈现 GridView 控件之前,必须先为该控件中的每一行创建一个 GridViewRow 对象。
// 参数:-1 rowIndex:行号; -1 这个参数0也可以,-1 也可以,可能ASP.NET Framework并未用到此值,所以DataControlRowType枚举为Header,Footer都將此值設為-1; DataControlRowType 一个枚举, 枚举该行是数据行/导航行/分割行等; DataControlRowState枚举, 指示该行的状态可用值有正常状态/选定状态/编辑状态/新插入状态
GridViewRow row = new GridViewRow(-, -, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
foreach (DataControlField field in gdv.Columns) //本来有7列, 加上checkbox有8列
{
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(, -, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
TableCell cell1 = new TableCell();
cell1.Text = "没有相关数据可以显示!";
cell1.BackColor = System.Drawing.Color.White;
row1.Cells.Add(cell1);
cell1.ColumnSpan = ;//合并列
if (gdv.Controls.Count == )
{
gdv.Page.Response.Write("<script language='javascript'>alert('必须在初始化表格类之前执行DataBind方法并设置EmptyDataText属性不为空!');</script>");
}
else
{
gdv.Controls[].Controls.Clear();
gdv.Controls[].Controls.AddAt(, row);
gdv.Controls[].Controls.AddAt(, row1);
}
}
}

最终截图:

aaarticlea/png;base64,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" alt="" />