zoukankan
html css js c++ java
GridView 实现自定义分页、排序、查询、添加、编辑、多选删除
运行效果图:
PM_Base.aspx
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
PM_Base.aspx.cs
"
Inherits
=
"
PM_Base
"
EnableEventValidation
=
"
false
"
%>
<!
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
id
="Head1"
runat
="server"
>
<
title
>
基本信息
</
title
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<!--
导航事件按钮
-->
<
table
cellpadding
="0"
cellspacing
="0"
width
="%"
>
<
tr
>
<
td
align
="right"
style
="height: 25px;"
nowrap
="nowrap"
>
<
input
type
="hidden"
id
="HiddenID"
name
="HiddenID"
runat
="server"
/>
<
input
id
="btnView"
runat
="server"
type
="button"
value
="查看"
style
=" 50px; height: 20px;"
class
="ClassBtn"
onclick
="return View();"
/>
<
asp:Button
ID
="btnSearch"
runat
="server"
Text
="查询"
Enabled
="false"
Width
="50px"
Height
="20px"
OnClick
="btnSearch_Click"
/>
<
input
id
="btnAdd"
runat
="server"
type
="button"
value
="添加"
style
=" 50px; height: 20px;"
class
="ClassBtn"
onclick
="return Add();"
/>
<
input
id
="btnEdit"
runat
="server"
type
="button"
value
="修改"
style
=" 50px; height: 20px;"
class
="ClassBtn"
onclick
="return Edit();"
/>
<
asp:Button
ID
="btnDelete"
runat
="server"
Text
="删除"
Width
="50px"
Height
="20px"
OnClick
="btnDelete_Click"
OnClientClick
="javascript:return ( checkSelect() && confirm('警告:删除将无法恢复!\n确认删除吗?') );"
/>
<
asp:Button
ID
="btnPrint"
runat
="server"
Text
="打印"
Width
="50px"
Height
="20px"
OnClick
="btnToExcel_Click"
/>
<
asp:Button
ID
="btnOut"
runat
="server"
Text
="导出"
Width
="50px"
Height
="20px"
OnClick
="btnToExcel_Click"
/>
</
td
>
</
tr
>
</
table
>
<
asp:GridView
ID
="GridView1"
SkinID
="gvClass2"
runat
="server"
Width
="%"
DataKeyNames
="ID"
AutoGenerateColumns
="False"
OnRowDataBound
="GridView1_RowDataBound"
OnDataBound
="GridView1_DataBound"
AllowSorting
="True"
OnSorting
="GridView1_Sorting"
AllowPaging
="True"
PageSize
=""
OnPageIndexChanging
="GridView1_PageIndexChanging"
>
<
PagerTemplate
>
<
table
width
="%"
>
<
tr
>
<
td
width
="%"
align
="left"
>
<
asp:Label
ID
="MessageLabel"
ForeColor
="Blue"
Text
="页码:"
runat
="server"
/>
<
asp:DropDownList
ID
="PageDropDownList"
AutoPostBack
="true"
OnSelectedIndexChanged
="PageDropDownList_SelectedIndexChanged"
runat
="server"
/>
<
asp:LinkButton
CommandName
="Page"
CommandArgument
="First"
ID
="linkBtnFirst"
runat
="server"
>
首页
</
asp:LinkButton
>
<
asp:LinkButton
CommandName
="Page"
CommandArgument
="Prev"
ID
="linkBtnPrev"
runat
="server"
>
上一页
</
asp:LinkButton
>
<
asp:LinkButton
CommandName
="Page"
CommandArgument
="Next"
ID
="linkBtnNext"
runat
="server"
>
下一页
</
asp:LinkButton
>
<
asp:LinkButton
CommandName
="Page"
CommandArgument
="Last"
ID
="linkBtnLast"
runat
="server"
>
尾页
</
asp:LinkButton
>
</
td
>
<
td
width
="%"
align
="right"
>
<
asp:Label
ID
="CurrentPageLabel"
ForeColor
="Blue"
runat
="server"
/>
</
td
>
</
tr
>
</
table
>
</
PagerTemplate
>
<
Columns
>
<
asp:TemplateField
>
<
ItemTemplate
>
<
input
id
="check"
runat
="server"
type
="checkbox"
value
='<%#
Eval("ID") %
>
' />
</
ItemTemplate
>
<
HeaderTemplate
>
<
input
id
="checkAll"
title
="全选"
onclick
="javascript:CheckAll(this);"
runat
="server"
type
="checkbox"
/>
</
HeaderTemplate
>
<
ItemStyle
Width
="5%"
/>
</
asp:TemplateField
>
<
asp:BoundField
DataField
="Name"
HeaderText
="名称"
SortExpression
="Name"
>
<
ItemStyle
Width
="%"
HorizontalAlign
="Left"
/>
</
asp:BoundField
>
<
asp:BoundField
DataField
="Description"
HeaderText
="描述"
SortExpression
="Description"
>
<
ItemStyle
HorizontalAlign
="Left"
/>
</
asp:BoundField
>
</
Columns
>
</
asp:GridView
>
<
asp:Label
ID
="Message"
runat
="server"
ForeColor
="Red"
></
asp:Label
>
</
form
>
</
body
>
</
html
>
<
script
language
="javascript"
>
function
$(s)
{
return
document.getElementById(s);}
function
isNull(_sVal)
{
return
(_sVal
==
""
||
_sVal
==
null
||
_sVal
==
"
#ff0000
"
);}
//
获取地址栏参数
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[i].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
GetRowIndex(obj)
{
$(
'
<%=HiddenID.ClientID %>
'
).value
=
obj;
}
var
HiddenID;
function
checkSelect()
{
HiddenID
=
$(
'
<%=HiddenID.ClientID %>
'
).value;
if
(isNull(HiddenID))
{
alert(
"
请选择一条记录!
"
);
}
return
!
isNull(HiddenID);
}
function
CheckAll(spanChk)
//
CheckBox全选
{
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[i].type
==
"
checkbox
"
&&
elm[i].id
!=
theBox.id)
{
if
(elm[i].checked
!=
xState)
elm[i].click();
}
}
//
---------------------------------------------------------
//
查看
function
View()
{
if
(checkSelect())
{
var
url
=
"
PM_BaseEdit.aspx?ID=
"
+
HiddenID
+
"
&tableName=
"
+
GetURL(
"
tableName
"
);
winOpen(url);
}
}
//
添加
function
Add()
{
var
url
=
"
PM_BaseAdd.aspx?tableName=
"
+
GetURL(
"
tableName
"
);
winOpen(url);
}
//
编辑
function
Edit()
{
if
(checkSelect())
{
var
url
=
"
PM_BaseEdit.aspx?ID=
"
+
HiddenID
+
"
&tableName=
"
+
GetURL(
"
tableName
"
);
winOpen(url);
}
}
//
弹出打开新页面-------------------------------------------
function
winOpen(url)
{
var
sFeatures
=
'
height=, width=, top=, left=,toolbar=0, menubar=0, scrollbars=auto, resizable=1, location=0, status=0
'
;
window.open(url,
"
PM_Base
"
,sFeatures);
}
function
showDialog(url)
{
var
sFeatures
=
"
dialogHeight:400px;dialogWidth:500px;resizeable:no;help:no;status:no
"
;
var
obj
=
showModalDialog(url,window,sFeatures);
}
</
script
>
PM_Base.aspx.cs
using
System;
using
System.Data;
using
System.Data.OleDb;
using
System.Data.SqlClient;
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.Web.Caching;
using
Framework.Components;
public
partial
class
PM_Base : Framework.UI.PageBase
{
Page事件
#region
Page事件
MX.PM.BLL.Progress myBiz
=
new
MX.PM.BLL.Progress();
string
tableName;
protected
void
Page_Load(
object
sender, EventArgs e)
{
tableName
=
base
.GetUrl(
"
tableName
"
);
//
首先要进行权限判断
if
(
!
string
.IsNullOrEmpty(tableName))
{
if
(
!
Page.IsPostBack)
{
if
(
!
Framework.Globals.CurrentPrincipal.HasPermission((
int
)Framework.Helper.ProjectManage.BaseBrowse))
{
Framework.AppException exception
=
new
Framework.AppException(
"
对不起,您无权操作此页面!
"
);
GridView1.Visible
=
false
;
btnView.Disabled
=
true
;
}
if
(
!
Framework.Globals.CurrentPrincipal.HasPermission((
int
)Framework.Helper.ProjectManage.BaseSelect))
{
btnSearch.Enabled
=
false
;
btnPrint.Enabled
=
false
;
btnOut.Enabled
=
false
;
}
if
(
!
Framework.Globals.CurrentPrincipal.HasPermission((
int
)Framework.Helper.ProjectManage.BaseAdd))
{
btnAdd.Disabled
=
true
;
}
if
(
!
Framework.Globals.CurrentPrincipal.HasPermission((
int
)Framework.Helper.ProjectManage.BaseUpdate))
{
btnEdit.Disabled
=
true
;
}
if
(
!
Framework.Globals.CurrentPrincipal.HasPermission((
int
)Framework.Helper.ProjectManage.BaseDelete))
{
btnDelete.Enabled
=
false
;
}
//
在此处放置查询代码
string
strTableName
=
"
PM_Progress
"
;
this
.btnSearch.OnClientClick
=
"
javascript:window.showModalDialog('../Tools/AjaxGeneralSearch/AjaxSeachPage.aspx?table=
"
+
strTableName
+
"
','','dialogWidth:500px; dialogHeight:400px; status:; help:; center:; scroll:; resizable:;');
"
;
}
GetData();
//
重新获取操作后的数据源
if
(
!
Page.IsPostBack)
{
BindGrid();
//
绑定GridView,为删除服务
}
}
}
#endregion
GridView
#region
GridView
属性
#region
属性
/**/
/**/
/**/
///
<summary>
///
获取或设置数据源
///
</summary>
public
DataTable DataSource
{
get
{
if
(ViewState[
"
dataSource
"
]
==
null
)
return
null
;
else
return
(DataTable)ViewState[
"
dataSource
"
];
}
set
{
ViewState[
"
dataSource
"
]
=
value;
}
}
/**/
/**/
/**/
///
<summary>
///
获取或设置排序方向
///
</summary>
public
SortDirection Sort_Direction
{
get
{
if
(ViewState[
"
sortDirection
"
]
==
null
)
return
SortDirection.Ascending;
else
return
(SortDirection)ViewState[
"
sortDirection
"
];
}
set
{
ViewState[
"
sortDirection
"
]
=
value;
}
}
/**/
/**/
/**/
///
<summary>
///
获取或设置当前分页码
///
</summary>
public
int
CurrentPage
{
get
{
if
(ViewState[
"
CurrentPage
"
]
==
null
)
return
;
else
return
(
int
)ViewState[
"
CurrentPage
"
];
}
set
{
ViewState[
"
CurrentPage
"
]
=
value;
}
}
#endregion
数据绑定
#region
数据绑定
/**/
/**/
/**/
///
<summary>
///
获取数据
///
</summary>
protected
void
GetData()
{
this
.DataSource
=
myBiz.GetBase(tableName).Tables[]; ;
}
/**/
/**/
/**/
///
<summary>
///
GridView 数据绑定
///
</summary>
private
void
BindGrid()
{
Message.Text
=
""
;
GridView1.DataSource
=
this
.DataSource;
GridView1.DataBind();
GridView1.PageIndex
=
CurrentPage;
//
设置当前页
}
protected
void
GridView1_RowDataBound(
object
sender, GridViewRowEventArgs e)
{
if
(e.Row.RowType
==
DataControlRowType.DataRow)
{
System.Web.UI.HtmlControls.HtmlInputCheckBox check
=
(System.Web.UI.HtmlControls.HtmlInputCheckBox)e.Row.FindControl(
"
check
"
);
string
id
=
check.Value;
if
(e.Row.RowIndex
%
!=
)
e.Row.Attributes.Add(
"
onclick
"
,
"
GetRowIndex('
"
+
id
+
"
'),tog(this,'#EFF3FB')
"
);
else
e.Row.Attributes.Add(
"
onclick
"
,
"
GetRowIndex('
"
+
id
+
"
'),tog(this,'#ffffff')
"
);
}
}
#endregion
分页绑定
#region
分页绑定
protected
void
PageDropDownList_SelectedIndexChanged(Object sender, EventArgs e)
{
GridViewRow pagerRow
=
GridView1.BottomPagerRow;
DropDownList pageList
=
(DropDownList)pagerRow.Cells[].FindControl(
"
PageDropDownList
"
);
GridView1.PageIndex
=
pageList.SelectedIndex;
this
.CurrentPage
=
pageList.SelectedIndex;
BindGrid();
}
protected
void
GridView1_DataBound(Object sender, EventArgs e)
{
if
(
this
.DataSource.Rows.Count
>
)
{
GridViewRow pagerRow
=
GridView1.BottomPagerRow;
LinkButton linkBtnFirst
=
(LinkButton)pagerRow.Cells[].FindControl(
"
linkBtnFirst
"
);
LinkButton linkBtnPrev
=
(LinkButton)pagerRow.Cells[].FindControl(
"
linkBtnPrev
"
);
LinkButton linkBtnNext
=
(LinkButton)pagerRow.Cells[].FindControl(
"
linkBtnNext
"
);
LinkButton linkBtnLast
=
(LinkButton)pagerRow.Cells[].FindControl(
"
linkBtnLast
"
);
if
(GridView1.PageIndex
==
)
{
linkBtnFirst.Enabled
=
false
;
linkBtnPrev.Enabled
=
false
;
}
else
if
(GridView1.PageIndex
==
GridView1.PageCount
-
)
{
linkBtnLast.Enabled
=
false
;
linkBtnNext.Enabled
=
false
;
}
else
if
(GridView1.PageCount
<=
)
{
linkBtnFirst.Enabled
=
false
;
linkBtnPrev.Enabled
=
false
;
linkBtnNext.Enabled
=
false
;
linkBtnLast.Enabled
=
false
;
}
DropDownList pageList
=
(DropDownList)pagerRow.Cells[].FindControl(
"
PageDropDownList
"
);
Label pageLabel
=
(Label)pagerRow.Cells[].FindControl(
"
CurrentPageLabel
"
);
if
(pageList
!=
null
)
{
for
(
int
i
=
; i
<
GridView1.PageCount; i
++
)
{
int
pageNumber
=
i
+
;
ListItem item
=
new
ListItem(pageNumber.ToString()
+
"
/
"
+
GridView1.PageCount.ToString(), pageNumber.ToString());
if
(i
==
GridView1.PageIndex)
{
item.Selected
=
true
;
}
pageList.Items.Add(item);
}
}
if
(pageLabel
!=
null
)
{
int
currentPage
=
GridView1.PageIndex
+
;
pageLabel.Text
=
"
当前页:
"
+
currentPage.ToString()
+
"
/
"
+
GridView1.PageCount.ToString();
}
}
}
#endregion
分页
#region
分页
protected
void
GridView1_PageIndexChanging(
object
sender, GridViewPageEventArgs e)
{
GridView1.PageIndex
=
e.NewPageIndex;
this
.CurrentPage
=
e.NewPageIndex;
//
保存当前页码
BindGrid();
}
#endregion
排序
#region
排序
/**/
///
/
<summary>
///
排序
///
</summary>
protected
void
GridView1_Sorting(
object
sender, GridViewSortEventArgs e)
{
SortGridView(
ref
GridView1,
this
.DataSource, e);
}
/**/
///
<summary>
///
实现排序
///
</summary>
private
void
SortGridView(
ref
GridView gv,
object
dt, GridViewSortEventArgs e)
{
string
sortDirection
=
""
;
string
sortExpression
=
e.SortExpression;
if
(
this
.Sort_Direction
==
SortDirection.Ascending)
{
this
.Sort_Direction
=
SortDirection.Descending;
sortDirection
=
"
DESC
"
;
}
else
{
this
.Sort_Direction
=
SortDirection.Ascending;
sortDirection
=
"
ASC
"
;
}
DataView Source
=
new
DataView((DataTable)dt);
Source.Sort
=
e.SortExpression
+
"
"
+
sortDirection;
gv.DataSource
=
Source;
gv.DataBind();
}
#endregion
#endregion
按钮事件
#region
按钮事件
查询
#region
查询
protected
void
btnSearch_Click(
object
sender, EventArgs e)
{
GetData();
BindGrid();
}
#endregion
删除
#region
删除
/**/
///
<summary>
///
删除,用循环得到用户选择的CheckBox
///
</summary>
protected
void
btnDelete_Click(
object
sender, EventArgs e)
{
Message.Text
=
""
;
string
sID
=
""
;
for
(
int
i
=
; i
<
GridView1.Rows.Count; i
++
)
{
GridViewRow row
=
GridView1.Rows[i];
System.Web.UI.HtmlControls.HtmlInputCheckBox check
=
(System.Web.UI.HtmlControls.HtmlInputCheckBox)row.FindControl(
"
check
"
);
if
(check.Checked)
{
sID
+=
check.Value
+
"
,
"
;
}
}
if
(sID.Length
>
)
{
//
MX.Sys.DAL.Log log = new MX.Sys.DAL.Log(this.UserInfo.UserName, "删除数据表" + tableName + ",sID=" + sID);
myBiz.DeleteBase(tableName, sID);
//
截取结尾的逗号
Message.Text
=
"
删除成功!
"
;
GetData();
BindGrid();
}
else
{
Message.Text
=
"
删除失败,请勾选要删除项!
"
;
}
}
#endregion
导出 打印
#region
导出 打印
public
override
void
VerifyRenderingInServerForm(Control control)
{
//
为转 excel 出问题而加上的过程(一定加!!)
//
Confirms that an HtmlForm control is rendered for
}
protected
void
btnToExcel_Click(
object
sender, EventArgs e)
{
System.IO.StringWriter stringWrite
=
new
System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite
=
new
HtmlTextWriter(stringWrite);
GridView1.AllowPaging
=
false
;
//
取消分页
BindGrid();
GridView1.RenderControl(htmlWrite);
GridView1.AllowPaging
=
true
;
//
恢复分页
BindGrid();
//
---专用导出页面
PrintInfo info
=
new
PrintInfo();
info.Title
=
"
工程列表
"
;
info.Orientation
=
true
;
info.ShowTime
=
true
;
info.Text
=
stringWrite.ToString();
ToPrint(info);
//
---
}
/**/
///
<summary>
///
打印
///
</summary>
private
void
ToPrint(PrintInfo info)
{
Session[
"
ToExcel
"
]
=
info;
//
***用Session传递参数
string
strURL
=
"
../Tools/WebPrint
"
;
string
sFeatures
=
"
height=, width=, top=, left=,toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, status=
"
;
string
js
=
"
window.open('{}','print','{}');
"
;
js
=
string
.Format(js, strURL, sFeatures);
Page.ClientScript.RegisterClientScriptBlock(
this
.GetType(),
"
print
"
, js,
true
);
}
#endregion
#endregion
}
查看全文
相关阅读:
Jenkins-------初探
python--可迭代对象、迭代器和生成器
python——模块、标准库、第三方模块安装
python --装饰器通俗讲解
python--函数、参数、名称空间与作用域、匿名函数、内置函数、闭包
python--文件操作
python--基础3(流程语句)
python--基础2 (数据类型及应用)
python--基础1(pip,虚拟环境、python编写规范)
文本处理三剑客简介(grep、awk、sed)
原文地址:https://www.cnblogs.com/wf225/p/850218.html
最新文章
linux通用邻居基础架构
RHSA-2017:1931-中危: bash 安全和BUG修复更新(代码执行)
RHSA-2019:0201-低危: systemd 安全更新
Linux软件漏洞-1
Varnish 6.2.2 的介绍与安装
高性能HTTP加速器Varnish--基础知识
Centos 6.9 安装 php5.6
Centos 6.9安装 php5.6 过程中报错:Error: Package: php56w-mcrypt-5.6.40-1.w6.x86_64 (webtatic)
Windows7 组策略错误:“未能打开这台计算机上的组策略对象。您可能没有合适的权限。”
Windows7 提示“无法访问 xxxx,您没有权限访问,请与网络管理员联系请求访问权限”的解决办法
热门文章
Windows7 提示“无法访问您可能没有权限使用网络资源”的解决办法
java中正则表达式要进行转义的字符。
分布式调度任务解决方案
Java -----transient 和static
Netty-----初探
ANT---调用外部命令的一些坑
eclipse 五种断点
String 可变
Ant -----ant标签和自定义任务
ant--处理依赖包
Copyright © 2011-2022 走看看