本人初学,其中参考了无锋不起浪之http://www.cnblogs.com/wf225/archive/2007/08/10/850218.html
不妥之处还望各位指正,谢谢!!
前台代码
BookInfo.aspx
<%
...
@ Page Language="C#" EnableEventValidation="false" AutoEventWireup="true" CodeFile="BookInfo.aspx.cs" Inherits="ZDWH_BookInfo"
%>

<!
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
>

<
script
language
="javascript"
type
="text/javascript"
>
...

function $(s)...{return document.getElementById(s);}

function isNull(_sVal)...{return (_sVal == "" || _sVal == null || _sVal == "undefined");}
//获取地址栏参数
function GetURL(name)

...{
var URLParams = new Array();
var aParams = document.location.search.substr(1).split('&');
for (i=0; i < aParams.length; i++)

...{
var aParam = aParams.split( '=');
URLParams[aParam[0]] = aParam[1];
}
//取得传过来的name参数
return URLParams[name];
}
var tgs;
var tmp_background_val;
function tog(n,flags)

...{
if (tgs)

...{tgs.style.background= tmp_background_val ;}
n.style.background= '#99ccff' ;
tmp_background_val=flags;
tgs=n;
}
function CheckAll(spanChk)//全选

...{
var oItem = spanChk.children;
var theBox=(spanChk.type=="checkbox")?spanChk:spanChk.children.item[0];
xState=theBox.checked;
elm=theBox.form.elements;
for(i=0;i<elm.length;i++)
if(elm.type=="checkbox" && elm.id!=theBox.id)

...{
if(elm.checked!=xState)
elm.click();
}
}
function GetRowIndex(obj)

...{
$('<%=HiddenID.ClientID %>').value = obj;
}
var HiddenID;
function checkSelect()

...{
HiddenID=$('<%=HiddenID.ClientID %>').value;
if(isNull(HiddenID))

...{
alert("请选择一条记录!");
}
return !isNull(HiddenID);
}
</
script
>
<
title
>
图书信息
</
title
>
<
link
href
="../Main.css"
type
="text/css"
rel
="stylesheet"
/>
</
head
>
<
body
>
<
form
id
="Form1"
runat
="server"
>
<
b
>
图书信息增加
</
b
>
<
asp:Button
class
="input_button"
id
="BtnClear"
Text
="清 空"
runat
="server"
CausesValidation
="False"
OnClick
="BtnClear_Click"
></
asp:Button
>
<
asp:button
class
="input_button"
id
="BtnSave"
runat
="server"
text
="保 存"
OnClick
="BtnSave_Click"
></
asp:button
>
<
asp:Label
ID
="LblCode1"
Text
="图书编号"
ForeColor
="Red"
runat
="server"
Visible
="false"
></
asp:Label
>
<
asp:Label
ID
="LblCode"
Text
=""
ForeColor
="Red"
runat
="server"
Visible
="false"
></
asp:Label
>
<
hr
size
="1"
/>
<
table
class
="table_1"
id
="search"
cellspacing
="1"
cellpadding
="0"
width
="95%"
align
="center"
>
<
tbody
>
<
tr
class
="tr2"
>
<
td
style
="PADDING-LEFT: 5px"
height
="25"
>
图书ISBN:
<
asp:TextBox
class
="input_text"
id
="TxtISBN"
runat
="server"
width
="200"
></
asp:TextBox
>
</
td
>
<
td
style
="PADDING-LEFT: 5px"
width
="47%"
height
="25"
>
出 版 社:
<
asp:DropDownList
class
="input_text"
id
="DdlSelPress"
runat
="server"
width
="200"
></
asp:DropDownList
>
</
td
>
</
tr
>
<
tr
class
="tr1"
>
<
td
style
="PADDING-LEFT: 5px"
colspan
="2"
height
="25"
>
图书名称:
<
asp:TextBox
class
="input_text"
id
="TxtName"
runat
="server"
width
="600"
></
asp:TextBox
>
<
asp:RequiredFieldValidator
id
="Requiredfieldvalidator1"
runat
="server"
ErrorMessage
="*"
ControlToValidate
="TxtName"
>
此项必填
</
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
class
="tr2"
>
<
td
style
="PADDING-LEFT: 5px"
height
="25"
>
定
价:
<
asp:TextBox
class
="input_text"
id
="TxtBookPrice"
runat
="server"
width
="200"
></
asp:TextBox
>
<
asp:RequiredFieldValidator
id
="Requiredfieldvalidator2"
runat
="server"
ErrorMessage
="*"
ControlToValidate
="TxtBookPrice"
>
此项必填
</
asp:RequiredFieldValidator
>
</
td
>
<
td
style
="PADDING-LEFT: 5px"
width
="47%"
height
="25"
>
图书源码:
<
asp:TextBox
class
="input_text"
id
="TxtSourceCode"
runat
="server"
width
="200"
></
asp:TextBox
>
</
td
>
</
tr
>
<
tr
class
="tr1"
>
<
td
style
="PADDING-LEFT: 5px"
height
="25"
>
自编代码:
<
asp:TextBox
class
="input_text"
id
="TxtBookSelfCode"
runat
="server"
width
="200"
></
asp:TextBox
>
</
td
>
<
td
style
="PADDING-LEFT: 5px"
width
="47%"
height
="25"
>
出版年度:
<
asp:TextBox
class
="input_text"
id
="TxtCbyYear"
runat
="server"
width
="200"
></
asp:TextBox
>
</
td
>
</
tr
>
<
tr
class
="tr2"
>
<
td
style
="PADDING-LEFT: 5px"
height
="25"
>
版
次:
<
asp:TextBox
class
="input_text"
id
="TxtBc"
runat
="server"
width
="200"
></
asp:TextBox
>
</
td
>
<
td
style
="PADDING-LEFT: 5px"
width
="47%"
height
="25"
>
作
者:
<
asp:TextBox
class
="input_text"
id
="TxtBookAuthor"
runat
="server"
width
="200"
></
asp:TextBox
>
</
td
>
</
tr
>
<
tr
class
="tr1"
>
<
td
style
="PADDING-LEFT: 5px"
height
="25"
>
架 位 号:
<
asp:TextBox
class
="input_text"
id
="TxtLocateCode"
runat
="server"
width
="200"
></
asp:TextBox
>
</
td
>
<
td
style
="PADDING-LEFT: 5px"
width
="47%"
height
="25"
>
备
注:
<
asp:TextBox
class
="input_text"
id
="TxtMemo"
runat
="server"
width
="200"
></
asp:TextBox
>
</
td
>
</
tr
>
</
tbody
>
</
table
>
<
br
/>
<
b
>
图书信息查询
</
b
>
<
hr
size
="1"
/>
<
table
class
=""
id
="Table1"
cellspacing
="1"
cellpadding
="0"
width
="95%"
align
="center"
border
="0"
>
<
tbody
>
<
tr
class
="tr2"
>
<
td
style
="PADDING-LEFT: 5px; height: 25px;"
>
检索条件:
<
asp:DropDownList
class
="input_text"
id
="DdlQuery_tj"
runat
="server"
width
="97"
>
<
asp:ListItem
Value
="name"
Selected
="True"
>
图书名称
</
asp:ListItem
>
<
asp:ListItem
Value
="ISBN"
>
图书ISBN
</
asp:ListItem
>
<
asp:ListItem
Value
="author"
>
作者
</
asp:ListItem
>
<
asp:ListItem
Value
="abbrname"
>
出版社名称
</
asp:ListItem
>
<
asp:ListItem
Value
="memo"
>
备注
</
asp:ListItem
>
</
asp:DropDownList
>
检索内容:
<
asp:TextBox
class
="input_text"
id
="TxtQuery_content"
runat
="server"
width
="120"
></
asp:TextBox
>
<
asp:button
class
="input_button"
id
="BtnQuery"
runat
="server"
text
="查 询"
CausesValidation
="False"
OnClick
="BtnQuery_Click"
></
asp:button
>
<
br
/>
<
b
><
asp:Label
id
="LblMsg"
runat
="server"
forecolor
="Red"
></
asp:Label
><
br
/>
<
asp:Button
ID
="BtnDelChecked"
runat
="server"
Height
="25px"
OnClick
="BtnDelChecked_Click"
Text
="删除选中"
Width
="100px"
CausesValidation
="false"
Visible
="false"
OnClientClick
="javascript:return ( checkSelect() && confirm('警告:删除将无法恢复!确认删除吗?') );"
/>
<
asp:Button
ID
="BtnToExcel"
runat
="server"
CausesValidation
="False"
Height
="25px"
OnClick
="BtnToExcel_Click"
Text
="导出到Excel"
Width
="100px"
/>
<
asp:Button
ID
="BtnToWord"
runat
="server"
CausesValidation
="False"
Height
="25px"
OnClick
="BtnToWord_Click"
Text
="导出到Word"
Width
="100px"
/></
b
>
<
input
type
="hidden"
id
="HiddenID"
name
="HiddenID"
runat
="server"
/>
</
td
>
</
tr
>
<
tr
>
<
td
style
="PADDING-LEFT: 5px"
height
="25"
>
<
asp:GridView
ID
="gridViewPublishers"
runat
="server"
CellPadding
="4"
ForeColor
="#333333"
GridLines
="None"
AllowPaging
="True"
AllowSorting
="True"
AutoGenerateColumns
="False"
OnPageIndexChanging
="GridViewPublishersPageChanged"
OnSorting
="GridViewPublishersSorting"
OnRowDeleting
="GridViewRowDelete"
DataKeyNames
="code"
OnRowEditing
="GridViewRowEdit"
OnRowDataBound
="gridViewPublishers_RowDataBound"
>
<
FooterStyle
BackColor
="#1C5E55"
Font-Bold
="True"
ForeColor
="White"
/>
<
RowStyle
BackColor
="#E3EAEB"
/>
<
EditRowStyle
BackColor
="#7C6F57"
/>
<
SelectedRowStyle
BackColor
="#C5BBAF"
Font-Bold
="True"
ForeColor
="#333333"
/>
<
PagerStyle
BackColor
="#666666"
ForeColor
="White"
HorizontalAlign
="Right"
/>
<
HeaderStyle
BackColor
="#1C5E55"
Font-Bold
="True"
ForeColor
="White"
/>
<
AlternatingRowStyle
BackColor
="White"
/>
<
Columns
>
<
asp:TemplateField
>
<
ItemTemplate
>
<
input
id
="check"
runat
="server"
type
="checkbox"
value
='<%#
Eval("Code") %
>
' />
</
ItemTemplate
>
<
HeaderTemplate
>
<
input
id
="checkAll"
runat
="server"
type
="checkbox"
onclick
="javascript:CheckAll(this);"
/>
</
HeaderTemplate
>
</
asp:TemplateField
>
<
asp:BoundField
DataField
="ID"
DataFormatString
="{0:d}"
HeaderText
="序號"
/>
<
asp:BoundField
DataField
="code"
HeaderText
="圖書編號"
SortExpression
="code"
/>
<
asp:BoundField
DataField
="name"
HeaderText
="圖書名稱 "
SortExpression
="name"
/>
<
asp:BoundField
DataField
="abbrname"
HeaderText
="版別"
SortExpression
="abbrname"
/>
<
asp:BoundField
DataField
="price"
DataFormatString
="{0:C}"
HtmlEncode
="false"
HeaderText
="定價"
SortExpression
="price"
/>
<
asp:BoundField
DataField
="Author"
HeaderText
="作者"
SortExpression
="author"
/>
<
asp:BoundField
DataField
="version"
HeaderText
="版次"
SortExpression
="version"
/>
<
asp:BoundField
DataField
="storeamountz"
HeaderText
="總店庫存"
SortExpression
="storeamountz"
/>
<
asp:BoundField
DataField
="storeamounta"
HeaderText
="門市庫存"
SortExpression
="storeamounta"
/>
<
asp:TemplateField
>
<
ItemTemplate
>
<
asp:Button
ID
="del"
runat
="server"
CausesValidation
="false"
Text
="删除"
CommandName
="Delete"
OnClientClick
="return confirm('您确认删除该记录吗?');"
CommandArgument
='<%#
Eval("Code") %
>
'>
</
asp:Button
>
</
ItemTemplate
>
<
HeaderTemplate
>
删除
</
HeaderTemplate
>
</
asp:TemplateField
>
<
asp:CommandField
ButtonType
="Button"
CausesValidation
="False"
HeaderText
="編輯"
ShowEditButton
="True"
/>
</
Columns
>
</
asp:GridView
>
</
td
>
</
tr
>
</
tbody
>
</
table
>
</
form
>
</
body
>
</
html
>
后台代码
BookInfo.aspx.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
ZDWH_BookInfo : System.Web.UI.Page

...
{


Page_Load()#region Page_Load()

/**//// <summary>
/// Page_Load事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)

...{
if (!IsPostBack)

...{
//判断用户登陆状态
//if (Session.Count = 0)
//{
// Response.Redirect("../index.aspx");
//}
//else
//{
// if (Session["CurrUser"].ToString == "")
// Response.Redirect("../index.aspx");
//}
DdlSelPressDataBind();
GridViewPublishersDataBind();
}
//i = 1;
//GridViewPublishersDataBind();
}
#endregion


GetAlertScript(string str)#region GetAlertScript(string str)

/**//// <summary>
/// 返回javascript字符串,str:彈出對話框所呈現的文字
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
protected string GetAlertScript(string str)

...{
string theScript;
theScript = "<script language='javascript'>alert('" + str + "')</script>";
return theScript;
}
#endregion


綁定出版社#region 綁定出版社

/**//// <summary>
/// 綁定出版社Ddl
/// </summary>
protected void DdlSelPressDataBind()

...{
SqlConnection cnn;
SqlDataAdapter dataA;
string sql;
DataSet ds;
using (cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["BookStoreConnectionString"].ToString()))

...{
sql = "SELECT Code,FullName FROM PressInfoSheet ORDER BY FullName";
dataA = new SqlDataAdapter(sql, cnn);
ds = new DataSet();
try

...{
dataA.Fill(ds, "PressInfoSheet");
DdlSelPress.DataSource = ds.Tables["PressInfoSheet"].DefaultView;
DdlSelPress.DataTextField = "FullName";
DdlSelPress.DataValueField = "Code";
DdlSelPress.DataBind();
}
catch(SqlException ex)

...{
Response.Write("數據讀取錯:" + ex.Message);
}
}
}
#endregion


属性#region 属性

/**////
private string GridViewSortDirection

...{

get ...{ return ViewState["SortDirection"] as string ?? "ASC"; }

set ...{ ViewState["SortDirection"] = value; }
}

private string GridViewSortExpression

...{

get ...{ return ViewState["SortExpression"] as string ?? string.Empty; }

set ...{ ViewState["SortExpression"] = value; }
}
#endregion


方法#region 方法

/**////
///

private方法#region private方法

/**//// <summary>
/// GetDirection(),GetDataTable(SqlConnection cnn, string sql),ClearTextBox()
/// SetBackColor(GridView gridView,DataTable dt,string colName,int col,System.Drawing.Color color)
/// </summary>
/// <returns></returns>
private string GetDirection()

...{
switch(GridViewSortDirection)

...{
case"ASC":
GridViewSortDirection = "DESC";
break;
case"DESC":
GridViewSortDirection = "ASC";
break;
}

return GridViewSortDirection;
}


获取DataTable#region 获取DataTable

/**//// <summary>
/// cnn,连接对象;sql,连接字符串;
/// </summary>
/// <param name="cnn"></param>
/// <param name="sql"></param>
/// <returns></returns>
private DataTable GetDataTable(SqlConnection cnn, string sql)

...{
SqlDataAdapter dataA;
DataTable dt;
dataA = new SqlDataAdapter(sql, cnn);
dt = new DataTable("gridViewPublishers");
dt.Columns.Add("ID");
//dt.Columns["ID"].AutoIncrement = true;
//dt.Columns["ID"].AutoIncrementSeed = 1;
//dt.Columns["ID"].AutoIncrementStep = 1;
ViewState["dataSource"] = dt;
dataA.Fill(dt);
return dt;
}
#endregion
//

设置突出显示#region 设置突出显示

/**//// <summary>
///突出显示:gridView 要设置的GridView,dt 源DataTable,colName 列名,col 列序号 color 颜色
/// </summary>
//
private void SetBackColor(GridView gridView,DataTable dt,string colName,int col,System.Drawing.Color color)

...{
for (int i = 0; i <= gridView.Rows.Count - 1; i++)//设置突出显示单元格

...{
//DataRowView mydrv = dt.DefaultView;
if (Convert.ToInt32(gridView.Rows.Cells[col].Text) < 10)//当此列小于10时改变背景色

...{
gridView.Rows.Cells[col].ForeColor = color;
gridView.Rows.Cells[col].Font.Bold = true;
gridView.Rows.Cells[col].Font.Size = 14;
//gridView.Rows.Cells[col].BorderColor = System.Drawing.Color.White;
//gridView.Rows.Cells[col].BorderWidth = 2;
}
//LblMsg.Text = mydrv[colName].ToString();
}
}
#endregion


清空输入区域#region 清空输入区域

/**//// <summary>
///
/// </summary>
private void ClearTextBox()

...{
TxtISBN.Text = "";
TxtName.Text = "";
TxtBookPrice.Text = "";
TxtSourceCode.Text = "";
TxtBookSelfCode.Text = "";
TxtCbyYear.Text = "";
TxtBc.Text = "";
TxtBookAuthor.Text = "";
TxtLocateCode.Text = "";
TxtMemo.Text = "";
DdlSelPress.SelectedIndex = -1;
BtnClear.Text = "清 空";
BtnSave.Text = "保 存";
LblCode.Text = "";
LblCode.Visible = false;
LblCode1.Visible = false;
}

#endregion


批量删除#region 批量删除

/**////删除tableName表中索引为sID的行
///
private void DeleteRows(string tableName, string sID)

...{

sID = sID.Trim();
sID=sID.Substring(0,sID.Length-1);//去掉末尾","
System.Text.StringBuilder code = new System.Text.StringBuilder(sID);
code=code.Replace(",", " or code=");
using (SqlConnection cnn = GetSqlConnection())

...{
string sql = "delete from "+tableName+" where code="+code.ToString();
using (SqlCommand cmd = new SqlCommand(sql, cnn))

...{
try

...{
cmd.ExecuteNonQuery();
}
catch (SqlException ex)

...{
Response.Write("删除失败:" + ex.Message);
}
}
CloseSqlConnection(cnn);
}
}
#endregion

#endregion


protected方法#region protected方法

/**//// <summary>
/// 为转 excel 出问题而加上的过程(一定加!!)
/// </summary>
/// <param name="control"></param>
public override void VerifyRenderingInServerForm(Control control)

...{
// 为转 excel 出问题而加上的过程(一定加!!)// Confirms that an HtmlForm control is rendered for
}


/**//// <summary>
/// fileName文件名称;fileType文件类型,只能为word/excel任一个
/// </summary>
/// <param name="fileName"></param>
/// <param name="fileType"></param>
protected void GridViewExport(string fileName, string fileType)

...{
Response.ClearContent();
Response.Buffer = true;

if (fileType.ToLower()== "excel")

...{
Response.AddHeader("content-disposition", "attachment; filename="" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls"");
Response.ContentType = "application/vnd.ms-excel";
}
else if (fileType.ToLower() == "word")

...{
Response.AddHeader("content-disposition", "attachment; filename="" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".doc"");
Response.ContentType = "application/vnd.ms-word";
}
else

...{
return ;
}
Response.Charset = "GB2312";
//GetEncoding("GB2312")容易引起乱码,所以建议实用UTF7/UTF8格式
//Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentEncoding = System.Text.Encoding.UTF7;

System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

gridViewPublishers.AllowPaging = false;//取消分页
gridViewPublishers.AllowSorting = false;//取消排序
GridViewPublishersDataBind();

//隐藏不要的列
gridViewPublishers.Columns[0].Visible = false;
gridViewPublishers.Columns[10].Visible = false;
gridViewPublishers.Columns[11].Visible = false;

gridViewPublishers.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.Flush();
Response.End();


gridViewPublishers.AllowPaging = true;//恢复分页
gridViewPublishers.AllowSorting = true;//恢复排序
GridViewPublishersDataBind();

//显示隐藏列
gridViewPublishers.Columns[0].Visible = true;
gridViewPublishers.Columns[10].Visible = true;
gridViewPublishers.Columns[11].Visible = true;
}
#endregion

#endregion


数据库联接操作#region 数据库联接操作

/**////
//获取数据库联接对象
private SqlConnection GetSqlConnection()

...{
try

...{
SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["BookStoreConnectionString"].ToString());
cnn.Open();
return cnn;
}
catch (SqlException e)

...{
Response.Write("数据库连接出错:" + e.Message);
return null;
}
}
//关闭数据库联接对象
private void CloseSqlConnection(SqlConnection cnn)

...{
try

...{
cnn.Close();
}
catch (SqlException e)

...{
Response.Write("数据库连接不存在或已经关闭:" + e.Message);
}
}
#endregion


GridView操作#region GridView操作

/**////


綁定GridView#region 綁定GridView

/**//// <summary>
/// 綁定GridViewPublishers
/// </summary>
protected void GridViewPublishersDataBind()

...{
SqlConnection cnn;
SqlCommand cmd;
SqlDataReader dataR;
//SqlDataAdapter dataA;
DataTable dt;
//DataSet ds;
//DataColumn dc;
string sql;
int maxPage;//最大頁數
cnn = GetSqlConnection();

sql = "SELECT COUNT(*) as nums,SUM(storeamounta) as mskc,SUM(storeamountz) as zdkc,SUM(price*storeamounta) as msmy,SUM(price*storeamountz) as zdmy FROM BookInfoSheet,PressInfoSheet,BookStoreSheetA,BookStoreSheetZ where BookInfoSheet.presscode=PressInfoSheet.code and BookInfoSheet.code=BookStoreSheetA.bookcode and BookInfoSheet.code=BookStoreSheetZ.bookcode ";
if (TxtQuery_content.Text.Trim() != "")
sql += " AND " + DdlQuery_tj.SelectedItem.Value + " LIKE '%" + TxtQuery_content.Text.Trim() + "%'";
cmd = new SqlCommand(sql, cnn);
try

...{
dataR = cmd.ExecuteReader();
if (dataR.Read())

...{
if (dataR["nums"].ToString() == "0")
LblMsg.Text = "";
else
LblMsg.Text = "合計:記錄數 " + dataR["nums"].ToString() + " 總店庫存 " + dataR["zdkc"].ToString() + " 門市庫存 " + dataR["mskc"].ToString() + " 總店碼洋 " + dataR["zdmy"].ToString() + " 門市碼洋 " + dataR["msmy"].ToString();
}
dataR.Close();
}
catch (SqlException ex)

...{
Response.Write("數據讀取出錯:" + ex.Message);
}

/**////取表头信息结束
///綁定gridViewPublishers
sql = "SELECT BookInfoSheet.*,abbrname,storeamounta,storeamountz FROM BookInfoSheet,PressInfoSheet,BookStoreSheetA,BookStoreSheetZ where BookInfoSheet.presscode=PressInfoSheet.code and BookInfoSheet.code=BookStoreSheetA.bookcode and BookInfoSheet.code=BookStoreSheetZ.bookcode ";
if (TxtQuery_content.Text.Trim() != "")
sql += " AND " + DdlQuery_tj.SelectedItem.Value + " LIKE '%" + TxtQuery_content.Text.Trim() + "%'";

sql += " ORDER BY BookInfoSheet.name DESC";
//dataA = new SqlDataAdapter(sql, cnn);
//dt = new DataTable("gridViewPublishers");
//dt.Columns.Add("ID");
//dt.Columns["ID"].AutoIncrement = true;
dt = GetDataTable(cnn, sql);
try

...{
//dataA.Fill(dt);

if (dt.DefaultView.Count % gridViewPublishers.PageSize > 0)

...{
maxPage = dt.DefaultView.Count / gridViewPublishers.PageSize + 1;
}
else

...{
maxPage = dt.DefaultView.Count / gridViewPublishers.PageSize;
}
while (gridViewPublishers.PageIndex > 0)

...{
if (maxPage < gridViewPublishers.PageIndex + 1)

...{
gridViewPublishers.PageIndex = gridViewPublishers.PageIndex - 1;
}
else

...{
break;
}
}
gridViewPublishers.DataSource = dt;
gridViewPublishers.DataBind();
CloseSqlConnection(cnn);
SetBackColor(gridViewPublishers, dt, "storeamounta", 9, System.Drawing.Color.Orange);
SetBackColor(gridViewPublishers, dt, "storeamountz", 8, System.Drawing.Color.OrangeRed);
BtnDelChecked.Visible = true;
}
catch (SqlException ex)

...{
Response.Write("數據讀取錯:" + ex.Message);
}
CloseSqlConnection(cnn);
}
#endregion


排序#region 排序

/**////
///
///
protected void GridViewPublishersSorting(Object sender, GridViewSortEventArgs e)

...{

GridViewSortExpression = e.SortExpression;
int pageIndex = gridViewPublishers.PageIndex;
//if (dt != null)
//LblMsg.Text = e.SortExpression;
gridViewPublishers.DataSource = SortDataTable(ViewState["dataSource"] as DataTable, false);
gridViewPublishers.DataBind();
SetBackColor(gridViewPublishers, ViewState["dataSource"] as DataTable, "storeamountz",8, System.Drawing.Color.OrangeRed);
SetBackColor(gridViewPublishers, ViewState["dataSource"] as DataTable, "storeamounta",9,System.Drawing.Color.Orange);
gridViewPublishers.PageIndex = pageIndex;

}

//对DataTable排序操作
private DataView SortDataTable(DataTable dataTable, bool isPageIndexChanging)

...{
if (dataTable != null)

...{
DataView dataView = new DataView(dataTable);
if (GridViewSortExpression != string.Empty)

...{
if (isPageIndexChanging)

...{
dataView.Sort = String.Format("{0} {1}", GridViewSortExpression, GridViewSortDirection);
}
else

...{
dataView.Sort = String.Format("{0} {1}", GridViewSortExpression, GetDirection());
}
}
return dataView;
}
else

...{
return new DataView();
}
}
#endregion


删除#region 删除

/**////
///
///
//
protected void GridViewRowDelete(Object sender, GridViewDeleteEventArgs e)

...{
int strCode = Convert.ToInt32(gridViewPublishers.DataKeys[e.RowIndex].Value);
//string strCode=delete
int zdkc = Convert.ToInt32(gridViewPublishers.Rows[e.RowIndex].Cells[8].Text);
int mskc = Convert.ToInt32(gridViewPublishers.Rows[e.RowIndex].Cells[9].Text);
if (zdkc != 0 || mskc != 0)

...{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Success", GetAlertScript("该书存在库存,无法删除!"));
}
else

...{
using (SqlConnection cnn = GetSqlConnection())

...{
string sql = "delete from bookinfosheet where code=@code";
using (SqlCommand cmd = new SqlCommand(sql, cnn))

...{
SqlParameter ParaCode = new SqlParameter("code", SqlDbType.Int);
ParaCode.Value = strCode;
cmd.Parameters.Add(ParaCode);
//gridViewPublishers.DeleteRow(e.RowIndex);
try

...{
cmd.ExecuteNonQuery();
Page.ClientScript.RegisterStartupScript(this.GetType(),"success",GetAlertScript("删除成功!"));
}
catch (SqlException ex)

...{
Response.Write("删除失败:" + ex.Message);
}
}
}
GridViewPublishersDataBind();
ClearTextBox();
}
}
#endregion


编辑#region 编辑

/**////
///
protected void GridViewRowEdit(Object sender, GridViewEditEventArgs e)

...{
SqlConnection cnn;
SqlCommand cmd;
SqlDataReader dataR;
string sql;
LblCode.Text = gridViewPublishers.Rows[e.NewEditIndex].Cells[2].Text;//保存Code值
LblCode.Visible = true;
LblCode1.Visible = true;
BtnSave.Text = "保存修改";
BtnClear.Text = "取消";
//gridViewPublishers.Rows[e.NewEditIndex].Enabled = false;
using (cnn = GetSqlConnection())

...{
sql = "SELECT * FROM BookInfoSheet WHERE Code=@Code";
using (cmd = new SqlCommand(sql, cnn))

...{
SqlParameter ParaCode = new SqlParameter("Code", SqlDbType.Int);
ParaCode.Value = LblCode.Text;
cmd.Parameters.Add(ParaCode);
try

...{
dataR = cmd.ExecuteReader();
while (dataR.Read())

...{
TxtISBN.Text = dataR["ISBN"].ToString();
TxtName.Text = dataR["Name"].ToString();
TxtBookPrice.Text = dataR["Price"].ToString();
TxtSourceCode.Text = dataR["SourceCode"].ToString();
TxtBookSelfCode.Text = dataR["SelfCode"].ToString();
TxtCbyYear.Text = dataR["YYear"].ToString();
TxtBc.Text = dataR["Version"].ToString();
TxtBookAuthor.Text = dataR["Author"].ToString();
TxtLocateCode.Text = dataR["LocCode"].ToString();
TxtMemo.Text = dataR["Memo"].ToString();
DdlSelPress.SelectedIndex = DdlSelPress.Items.IndexOf(DdlSelPress.Items.FindByValue(dataR["PressCode"].ToString()));
}
}
catch (SqlException ex)

...{
Response.Write("数据读取错:" + ex.Message);
}
}
}
}
#endregion


翻頁#region 翻頁
protected void GridViewPublishersPageChanged(Object sender, GridViewPageEventArgs e)

...{
gridViewPublishers.PageIndex = e.NewPageIndex;
GridViewPublishersDataBind();
}
#endregion


RowDataBound事件#region RowDataBound事件

/**//// <summary>
/// 鼠标移动时改变背景样式,和自增列
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gridViewPublishers_RowDataBound(object sender, GridViewRowEventArgs e)

...{
//判断是否数据行
if (e.Row.RowType == DataControlRowType.DataRow)

...{
//当鼠标停留时更改背景色

e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#6699cc'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");

//
System.Web.UI.HtmlControls.HtmlInputCheckBox check = (System.Web.UI.HtmlControls.HtmlInputCheckBox)e.Row.FindControl("check");
string sid = check.Value;
if (e.Row.RowIndex % 2 != 0)
e.Row.Attributes.Add("onclick", "GetRowIndex('" + sid + "'),tog(this,'#EFF3FB')");
else
e.Row.Attributes.Add("onclick", "GetRowIndex('" + sid + "'),tog(this,'#ffffff')");
}

//设置序号列
if (e.Row.RowIndex != -1)

...{
int id = (e.Row.RowIndex + 1)+gridViewPublishers.PageSize*gridViewPublishers.PageIndex;
e.Row.Cells[1].Text = id.ToString();
}
}
#endregion

#endregion


事件#region 事件


清空输入#region 清空输入

/**//// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnClear_Click(object sender, EventArgs e)

...{
ClearTextBox();
}

#endregion


查詢事件#region 查詢事件

/**//// <summary>
/// 查詢事件BtnQuery_Click()
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnQuery_Click(object sender, EventArgs e)

...{
GridViewPublishersDataBind();
}
#endregion


保存用戶輸入#region 保存用戶輸入

/**//// <summary>
/// BtnSave事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnSave_Click(object sender, EventArgs e)

...{

string bookCode, sql;
SqlConnection cnn;
SqlCommand cmd;
SqlDataReader dataR;
try

...{
cnn = GetSqlConnection();
if (LblCode.Text == "")

添加状态#region 添加状态

...{
sql = "SELECT Code FROM BookInfoSheet WHERE PressCode=@PressCode ORDER BY Code DESC";
//计算新的Code值
using (cmd = new SqlCommand(sql, cnn))

...{
SqlParameter ParaPressCode1 = new SqlParameter("PressCode", SqlDbType.Char, 3);
ParaPressCode1.Value = DdlSelPress.SelectedValue;
cmd.Parameters.Add(ParaPressCode1);


dataR = cmd.ExecuteReader();
if (dataR.Read())
bookCode = DdlSelPress.SelectedValue + String.Format("0000", (Convert.ToInt32(dataR["Code"].ToString().Substring(dataR["Code"].ToString().Length - 4)) + 1));
else
bookCode = DdlSelPress.SelectedValue + "0001";
dataR.Close();
}
sql = "INSERT INTO BookInfoSheet(Code,Name,SourceCode,SelfCode,ISBN,YYear,Version,Author,Price,PressCode,LocCode,Memo) VALUES(@Code,@Name,@SourceCode,@SelfCode,@ISBN,@YYear,@Version,@Author,@Price,@PressCode,@LocCode,@Memo)";
//sql = "UPDATE BookInfoSheet Set Name=@Name,SourceCode=@SourceCode,SelfCode=@SelfCode,ISBN=@ISBN,YYear=@YYear,Version=@Version,Price=@Price,PressCode=@PressCode,LocCode=@LocCode,Memo=@Memo WHERE Code=" + LblCode.Text;
using (cmd = new SqlCommand(sql, cnn))

...{
SqlParameter ParaCode, ParaName, ParaSourceCode, ParaSelfCode, ParaISBN, ParaYYear, ParaVersion, ParaAuthor, ParaPrice, ParaPressCode, ParaLocCode, ParaMemo;
ParaCode = new SqlParameter("Code", bookCode);
ParaName = new SqlParameter("Name", TxtName.Text);
ParaSourceCode = new SqlParameter("SourceCode", TxtSourceCode.Text);
ParaSelfCode = new SqlParameter("SelfCode", TxtBookSelfCode.Text);
ParaISBN = new SqlParameter("ISBN", TxtISBN.Text);
ParaYYear = new SqlParameter("YYear", TxtCbyYear.Text);
ParaVersion = new SqlParameter("Version", TxtBc.Text);
ParaAuthor = new SqlParameter("Author", TxtBookAuthor.Text);
ParaPrice = new SqlParameter("Price", TxtBookPrice.Text);
ParaPressCode = new SqlParameter("PressCode", DdlSelPress.SelectedValue);
ParaLocCode = new SqlParameter("LocCode", TxtLocateCode.Text);
ParaMemo = new SqlParameter("Memo", TxtMemo.Text);
cmd.Parameters.Add(ParaCode);
cmd.Parameters.Add(ParaAuthor);
cmd.Parameters.Add(ParaISBN);
cmd.Parameters.Add(ParaLocCode);
cmd.Parameters.Add(ParaMemo);
cmd.Parameters.Add(ParaName);
cmd.Parameters.Add(ParaPressCode);
cmd.Parameters.Add(ParaPrice);
cmd.Parameters.Add(ParaSelfCode);
cmd.Parameters.Add(ParaSourceCode);
cmd.Parameters.Add(ParaVersion);
cmd.Parameters.Add(ParaYYear);
try

...{
cmd.ExecuteNonQuery();
Page.ClientScript.RegisterStartupScript(this.GetType(), "Success", GetAlertScript("保存成功!"));
GridViewPublishersDataBind();
}
catch (Exception ex)

...{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Success", GetAlertScript("保存失敗!" + ex.Message));
Response.Write("數據插入錯:" + ex.Message);
}
}
}
#endregion
else

修改状态#region 修改状态

...{
sql = "UPDATE BookInfoSheet Set Name=@Name,SourceCode=@SourceCode,SelfCode=@SelfCode,ISBN=@ISBN,YYear=@YYear,Version=@Version,Price=@Price,PressCode=@PressCode,LocCode=@LocCode,Memo=@Memo WHERE Code=" + LblCode.Text;
using (cmd = new SqlCommand(sql, cnn))

...{
SqlParameter ParaName, ParaSourceCode, ParaSelfCode, ParaISBN, ParaYYear, ParaVersion, ParaAuthor, ParaPrice, ParaPressCode, ParaLocCode, ParaMemo;

ParaName = new SqlParameter("Name", TxtName.Text);
ParaSourceCode = new SqlParameter("SourceCode", TxtSourceCode.Text);
ParaSelfCode = new SqlParameter("SelfCode", TxtBookSelfCode.Text);
ParaISBN = new SqlParameter("ISBN", TxtISBN.Text);
ParaYYear = new SqlParameter("YYear", TxtCbyYear.Text);
ParaVersion = new SqlParameter("Version", TxtBc.Text);
ParaAuthor = new SqlParameter("Author", TxtBookAuthor.Text);
ParaPrice = new SqlParameter("Price", TxtBookPrice.Text);
ParaPressCode = new SqlParameter("PressCode", DdlSelPress.SelectedValue);
ParaLocCode = new SqlParameter("LocCode", TxtLocateCode.Text);
ParaMemo = new SqlParameter("Memo", TxtMemo.Text);

cmd.Parameters.Add(ParaAuthor);
cmd.Parameters.Add(ParaISBN);
cmd.Parameters.Add(ParaLocCode);
cmd.Parameters.Add(ParaMemo);
cmd.Parameters.Add(ParaName);
cmd.Parameters.Add(ParaPressCode);
cmd.Parameters.Add(ParaPrice);
cmd.Parameters.Add(ParaSelfCode);
cmd.Parameters.Add(ParaSourceCode);
cmd.Parameters.Add(ParaVersion);
cmd.Parameters.Add(ParaYYear);
try

...{
cmd.ExecuteNonQuery();
Page.ClientScript.RegisterStartupScript(this.GetType(), "Success", GetAlertScript("修改成功!"));
GridViewPublishersDataBind();
}
catch (Exception ex)

...{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Success", GetAlertScript("修改失敗!" + ex.Message));
Response.Write("數據修改錯:" + ex.Message);
}
}
cnn.Close();
}
#endregion
CloseSqlConnection(cnn);
ClearTextBox();
GridViewPublishersDataBind();
}
catch (Exception ex)

...{
ClearTextBox();
Response.Write("連接數據庫錯:" + ex.Message);
}
}
#endregion


全选#region 全选

/**//// <summary>
/// 全选事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void checkAll_ServerChange(object sender, EventArgs e)

...{
int zdkc, mskc;

foreach (GridViewRow gvr in gridViewPublishers.Rows)

...{
zdkc = Convert.ToInt32(gvr.Cells[8].Text);
mskc = Convert.ToInt32(gvr.Cells[9].Text);
if(zdkc==0&&mskc==0)
((CheckBox)gvr.Cells[0].FindControl("check")).Checked = ((CheckBox)sender).Checked;
}
}
#endregion


批量删除#region 批量删除

/**//// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnDelChecked_Click(object sender, EventArgs e)

...{
int zdkc, mskc;
bool isChecked;
HtmlInputCheckBox check;
GridViewRow row;
string sID="";
for (int i = 0; i < gridViewPublishers.Rows.Count; i++)

...{
row = gridViewPublishers.Rows;
zdkc = Convert.ToInt32(row.Cells[8].Text);
mskc = Convert.ToInt32(row.Cells[9].Text);
check =(HtmlInputCheckBox)row.FindControl("check");

if (zdkc == 0 && mskc == 0 && check.Checked)
sID += check.Value + ",";
}
if (sID.Length > 0)

...{
DeleteRows("BookInfoSheet", sID);
GridViewPublishersDataBind();
Page.ClientScript.RegisterStartupScript(this.GetType(), "Success", GetAlertScript("批量删除完成!"));
}
else

...{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Success", GetAlertScript("请选择要删除的记录!"));
}
}
#endregion


导出为Excel#region 导出为Excel

/**//// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
///
protected void BtnToExcel_Click(object sender, EventArgs e)

...{
GridViewExport("图书信息", "excel");
}
#endregion


导出为Word#region 导出为Word

/**//// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnToWord_Click(object sender, EventArgs e)

...{
GridViewExport("图书信息", "word");
}
#endregion

#endregion

}