zoukankan
html css js c++ java
GridView的自定义分页,单选、多选、排序、自增列的简单应用
1.前台代码
<%
...
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
testgridview2.aspx.cs
"
Inherits
=
"
web_testgridview2
"
%>
<!
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
>
<
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
>
2.后台代码:
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
web_testgridview2 : 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
=
"
server=xww;database=testdb;uid=sa;pwd=admin
"
;
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);
}
}
3.数据库代码:
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
,
[
price
][
money
]
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
查看全文
相关阅读:
spring事件广播
浏览器中文乱码,组合项目中部分模块乱码
SpringSecurity加密Salt
Linux服务器Java输出文件中文乱码
重定向监听端口并持久化路由配置
Mac下文件编码转换
Shell之内容匹配与格式输出
[leetcode]Scramble String
[leetcode]Decode Ways
[leetcode]Valid Palindrome
原文地址:https://www.cnblogs.com/sunfeiwto/p/1334882.html
最新文章
MYSQL数据导入导出
zip的打包与解包和包下载
集合的删除
JSF Action 与ActionListener的区别
路径
力量源泉
Arrays.asList(数组) 解说
Socket通信原理和实践
系统动画
XCode6 生成prefix.pch文件
热门文章
(1)CorePlot配置
double型(双精度型)的打印(printf) 和scanf
Objective-c nil, Nil, NULL和NSNull的区别
用xib自定义UITableViewCell的注意事项——重用
升级到XCode6后,iOS8里设置tableview的setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法
(疯狂java)第四课(上)
(疯狂java)第三课
java之EJB
LinuxMail发送邮件
SpringSecurityLDap
Copyright © 2011-2022 走看看