zoukankan
html css js c++ java
关于GridView中自定义分页、单选、多选、排序、自增列的简单应用
简单示例,代码如下,
fenpage.aspx的代码
:
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
fenpage.aspx.cs
"
Inherits
=
"
gridview_fenpage
"
%>
<!
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"
>
//
判断多选是否与选中项(没有选中的返回false)
function
slcNo_click()
{
if
(document.form1.checkboxname.length)
{
for
(
var
i
=
0
;i
<
document.form1.checkboxname.length;i
++
)
{
if
(document.form1.checkboxname[i].checked)
{
return
true
;
}
}
}
else
{
if
(document.form1.checkboxname.checked)
{
return
true
;
}
}
alert(
"
请选择后再操作!
"
);
return
false
;
}
//
鼠标经过改变行的颜色
if
(
!
objbeforeItem)
{
var
objbeforeItem
=
null
;
var
objbeforeItembackgroundColor
=
null
;
}
function
ItemOver(obj)
{
if
(objbeforeItem)
{
objbeforeItem.style.backgroundColor
=
objbeforeItembackgroundColor;
}
objbeforeItembackgroundColor
=
obj.style.backgroundColor;
objbeforeItem
=
obj;
obj.style.backgroundColor
=
"
#B9D1F3
"
;
}
//
//
多选的全选与取消
function
checkJs(boolvalue)
{
if
(document.all.checkboxname.length
>
1
)
{
for
(
var
i
=
0
;i
<
document.all.checkboxname.length;i
++
)
{
document.all.checkboxname[i].checked
=
boolvalue;
}
}
else
document.all.checkboxname.checked
=
boolvalue;
}
//
//
只有全部选中时“全选”选中
function
SingleCheckJs()
{
var
flag1
=
false
;
var
flag2
=
false
;
if
(document.form1.checkboxname.length)
{
for
(
var
i
=
0
;i
<
document.form1.checkboxname.length;i
++
)
{
if
(document.form1.checkboxname[i].checked)
flag1
=
true
;
else
flag2
=
true
;
}
}
else
{
if
(document.form1.checkboxname.checked)
flag1
=
true
;
else
flag2
=
true
;
}
if
(flag1
==
true
&&
flag2
==
false
)
document.getElementById(
"
chk
"
).checked
=
true
;
else
document.getElementById(
"
chk
"
).checked
=
false
;
}
//
</
script
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
div
>
<
table
cellpadding
="0"
cellspacing
="0"
border
="0"
width
="80%"
style
="font-size: 11px"
>
<
tr
>
<
td
align
="center"
>
<
asp:GridView
ID
="GridView1"
runat
="server"
Width
="100%"
CellPadding
="4"
ForeColor
="#333333"
AutoGenerateColumns
="False"
AllowPaging
="True"
PageSize
="12"
BorderColor
="Silver"
BorderStyle
="Solid"
BorderWidth
="1px"
OnRowDataBound
="GridView1_RowDataBound"
ShowFooter
="True"
EmptyDataText
="没有数据记录!!"
AllowSorting
="True"
OnSorting
="GridView1_Sorting"
>
<
Columns
>
<
asp:BoundField
HeaderText
="编号"
DataField
="id"
Visible
="False"
/>
<
asp:TemplateField
HeaderText
="<input type='checkbox' id='chk' name='chk' onclick='checkJs(this.checked);' />全选"
FooterText
="全选"
>
<
ItemTemplate
>
<
input
type
="checkbox"
id
="checkboxname"
name
="checkboxname"
value
='<%#
DataBinder.Eval(Container.DataItem, "id")%
>
' onclick='SingleCheckJs();' />
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:TemplateField
HeaderText
="单选"
FooterText
="单选"
>
<
ItemTemplate
>
<
input
type
="radio"
id
="RadioName"
name
="RadioName"
value
='<%#
Eval("id")%
>
' />
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:TemplateField
HeaderText
="自增列"
FooterText
="自增列"
>
<
ItemTemplate
>
<%
# (Container.DataItemIndex
+
1
).ToString()
%>
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:BoundField
HeaderText
="姓名"
FooterText
="姓名"
DataField
="name"
SortExpression
="name"
/>
<
asp:BoundField
HeaderText
="身份证号"
FooterText
="身份证号"
DataField
="card"
SortExpression
="card"
/>
<
asp:BoundField
HeaderText
="价格"
FooterText
="价格"
DataField
="price"
DataFormatString
="{0:¥#,##0.00}"
HtmlEncode
="False"
SortExpression
="price"
/>
<
asp:BoundField
HeaderText
="数字"
FooterText
="数字"
DataField
="price"
DataFormatString
="{0:0.00}"
HtmlEncode
="False"
SortExpression
="price"
/>
<
asp:BoundField
HeaderText
="建立时间"
FooterText
="建立时间"
DataField
="createdate"
DataFormatString
="{0:yyyy年MM月dd日 hh时mm分ss秒}"
HtmlEncode
="False"
SortExpression
="createdate"
/>
</
Columns
>
<
RowStyle
BackColor
="#F7F6F3"
ForeColor
="#333333"
/>
<
EditRowStyle
BackColor
="#999999"
/>
<
SelectedRowStyle
BackColor
="#E2DED6"
Font-Bold
="True"
ForeColor
="#333333"
/>
<
PagerStyle
BackColor
="#284775"
ForeColor
="White"
HorizontalAlign
="Center"
/>
<
AlternatingRowStyle
BackColor
="White"
ForeColor
="#284775"
/>
<
PagerSettings
Visible
="False"
/>
<
FooterStyle
Font-Bold
="True"
/>
<
HeaderStyle
Font-Bold
="False"
Font-Italic
="False"
/>
</
asp:GridView
>
</
td
>
</
tr
>
<
tr
>
<
td
align
="center"
style
="height: 25px"
>
<
asp:LinkButton
ID
="btnFirst"
CommandArgument
="first"
OnClick
="PagerButtonClick"
runat
="server"
>
首 页
</
asp:LinkButton
>
<
asp:LinkButton
ID
="btnPrev"
CommandArgument
="prev"
OnClick
="PagerButtonClick"
runat
="server"
>
上一页
</
asp:LinkButton
>
<
asp:LinkButton
ID
="btnNext"
CommandArgument
="next"
OnClick
="PagerButtonClick"
runat
="server"
>
下一页
</
asp:LinkButton
>
<
asp:LinkButton
ID
="btnLast"
CommandArgument
="last"
OnClick
="PagerButtonClick"
runat
="server"
>
尾 页
</
asp:LinkButton
>
<
asp:Label
ID
="LblCurrentIndex"
runat
="server"
></
asp:Label
>
<
asp:Label
ID
="LblPageCount"
runat
="server"
></
asp:Label
>
<
asp:Label
ID
="LblRecordCount"
runat
="server"
></
asp:Label
></
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Button
ID
="Button2"
runat
="server"
Text
="checkbox得到选择的行"
OnClick
="Button2_Click"
>
</
asp:Button
>
<
asp:Button
ID
="Button1"
runat
="server"
Text
="radio得到选择的行"
OnClick
="Button1_Click"
></
asp:Button
>
</
td
>
</
tr
>
</
table
>
</
div
>
</
form
>
</
body
>
</
html
>
fenpage.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
gridview_fenpage : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
Button2.Attributes[
"
onclick
"
]
=
"
return slcNo_click();
"
;
GridViewBind(
""
);
}
private
void
GridViewBind(
string
Sqlsort)
{
string
connStr
=
ConfigurationManager.ConnectionStrings[
"
ConnString1
"
].ConnectionString;
string
SqlStr
=
"
SELECT * FROM test01 where id<1000
"
+
Sqlsort;
DataSet ds
=
new
DataSet();
try
{
SqlConnection conn
=
new
SqlConnection(connStr);
if
(conn.State.ToString()
==
"
Closed
"
) conn.Open();
SqlDataAdapter da
=
new
SqlDataAdapter(SqlStr, conn);
da.Fill(ds,
"
test01
"
);
if
(conn.State.ToString()
==
"
Open
"
) conn.Close();
GridView1.DataSource
=
ds.Tables[
0
].DefaultView;
GridView1.DataBind();
LblCurrentIndex.Text
=
"
第
"
+
(GridView1.PageIndex
+
1
).ToString()
+
"
页
"
;
LblPageCount.Text
=
"
共
"
+
GridView1 .PageCount.ToString()
+
"
页
"
;
LblRecordCount.Text
=
"
总共
"
+
ds.Tables[
0
].Rows.Count.ToString()
+
"
条
"
;
if
(ds.Tables[
0
].Rows.Count
==
0
)
{
btnFirst.Visible
=
false
;
btnPrev.Visible
=
false
;
btnNext.Visible
=
false
;
btnLast.Visible
=
false
;
LblCurrentIndex.Visible
=
false
;
LblPageCount.Visible
=
false
;
LblRecordCount.Visible
=
false
;
}
else
if
(GridView1.PageCount
==
1
)
{
btnFirst.Visible
=
false
;
btnPrev.Visible
=
false
;
btnNext.Visible
=
false
;
btnLast.Visible
=
false
;
}
//
计算生成分页页码,分别为:"首 页" "上一页" "下一页" "尾 页"
btnFirst.CommandName
=
"
1
"
;
btnPrev.CommandName
=
(GridView1.PageIndex
==
0
?
"
1
"
: GridView1.PageIndex.ToString());
btnNext.CommandName
=
(GridView1.PageCount
==
1
?
GridView1.PageCount.ToString() : (GridView1.PageIndex
+
2
).ToString());
btnLast.CommandName
=
GridView1.PageCount.ToString();
//
}
catch
(Exception ex)
{
Response.Write(
"
数据库错误,错误原因:
"
+
ex.Message);
Response.End();
}
}
protected
void
PagerButtonClick(
object
sender, EventArgs e)
{
GridView1.PageIndex
=
Convert.ToInt32(((LinkButton)sender).CommandName)
-
1
;
GridViewBind(
""
);
}
protected
void
GridView1_RowDataBound(
object
sender, GridViewRowEventArgs e)
{
e.Row.Attributes[
"
onmouseover
"
]
=
"
ItemOver(this)
"
;
}
protected
void
Button2_Click(
object
sender, EventArgs e)
{
string
str
=
""
;
string
[]ckb
=
null
;
str
=
Request.Form.Get(
"
checkboxname
"
);
ckb
=
str.Split(
new
char
[]
{
'
,
'
}
);
Response.Write(
"
直接在页面中得到的值为:
"
+
str
+
"
<br>
"
);
Response.Write(
"
处理后存放在数组中,如下:<br>
"
);
for
(
int
i
=
0
;i
<
ckb.Length;i
++
)
{
Response.Write(
"
ckb[
"
+
i
+
"
]的值为:
"
+
ckb[i]
+
"
<br>
"
);
}
}
protected
void
Button1_Click(
object
sender, EventArgs e)
{
Response.Write(Request.Form.Get(
"
RadioName
"
));
}
protected
void
GridView1_Sorting(
object
sender, GridViewSortEventArgs e)
{
string
sql
=
""
;
if
(ViewState[
"
SortDirection
"
]
==
null
||
ViewState[
"
SortDirection
"
].ToString().CompareTo(
""
)
==
0
)
{
ViewState[
"
SortDirection
"
]
=
"
desc
"
;
}
else
ViewState[
"
SortDirection
"
]
=
""
;
sql
=
"
order by
"
+
e.SortExpression
+
ViewState[
"
SortDirection
"
];
GridViewBind(sql);
}
}
数据库中表的生成代码:
CREATE
TABLE
[
dbo
]
.
[
test01
]
(
[
id
]
[
decimal
]
(
18
,
0
)
IDENTITY
(
1
,
1
)
NOT
NULL
,
[
name
]
[
varchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
card
]
[
varchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
createdate
]
[
datetime
]
NULL
)
ON
[
PRIMARY
]
GO
ALTER
TABLE
[
dbo
]
.
[
test01
]
ADD
CONSTRAINT
[
DF_test01_createdate
]
DEFAULT
(
getdate
())
FOR
[
createdate
]
,
CONSTRAINT
[
PK_test01
]
PRIMARY
KEY
CLUSTERED
(
[
id
]
)
ON
[
PRIMARY
]
GO
查看全文
相关阅读:
idea spring boot 1.x junit单元测试
linux oracle/jdk启用大页面
jdk8之CompletableFuture与CompletionService
gc日志深入解析-覆盖CMS、并行GC、G1、ZGC、openj9
h2 web console使用
LockSupport工具类详解
反射、Unsafe、直接调用性能大比拼
spring boot druid动态多数据源监控集成
Linux网络
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection总结
原文地址:https://www.cnblogs.com/Fooo/p/590046.html
最新文章
Linux下Netty实现高性能UDP服务(SO_REUSEPORT)
加密和验签:保密性、完整性和身份认证
crontab定时任务不执行的原因
时区切换导致quartz定时任务没有触发问题
误用WeakHashMap引起的死循环cpu跑满问题
Spring事务传播属性
Java内部DNS查询实现和参数设置
MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)
mybatis 3.x源码深度解析与最佳实践(最完整原创)
原百万访问量博客http://blog.chinaunix.net/uid/20656672.html不再维护(10年前数百篇oracle/teradata性能优化、故障处理案例)
热门文章
expdp时大量"Wait Event: “Streams AQ: enqueue blocked on low memory”"等待事件
Java配合nginx实现文件下载、显示的权限控制
redis核心机制深入解析
java中的位操作、移位操作
HTTPS协议简介及其工作流程、及报文结构
nginx配置https并强制http自动跳转到https
jstack -F解析-未完待续
一致性哈希目标节点的计算验证逻辑
spring boot rabbitmq集成
centos 7 rabbitmq 3.7.12 erlang 20.3源码安装
Copyright © 2011-2022 走看看