前台JS代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
//ajax无刷新分页
function
btnList() {
var
current = 1;
$.post(
"NoRefreshPage.ashx"
, {
"action"
:
"pagenum"
},
function
(data, status) {
//func开始
if
(status ==
"success"
) {
//if开始
$(
"#trPage"
).empty();
$(
"#trPage"
).append(
"<td title=tdprev><a href=''>上一页</a></td>"
);
//添加上一页
$(
"#trPage td[title='tdprev']"
).click(
function
(e) {
e.preventDefault();
if
(parseInt(current) > 1) { $(
"#trPage td[title=td"
+ (current - 1) +
"]"
).click(); }
else
alert(
"已经在首页"
);
});
for
(
var
i = 1; i <= data; i++) {
//for开始
var
tdPage =
"<td title=td"
+ i +
"><a href=''>"
+ i +
"</a></td>"
;
$(
"#trPage"
).append(tdPage);
}
//for循环结束
$(
"#trPage"
).append(
"<td title=tdnext><a href=''>下一页</a></td>"
);
//添加下一页
$(
"#trPage td[title='tdnext']"
).click(
function
(e) {
e.preventDefault();
if
(parseInt(current) < parseInt(data)) { current++; $(
"#trPage td[title=td"
+ current +
"]"
).click(); }
else
{ alert(
"已经在末页"
); }
});
$(
"#trPage td"
).click(
function
(e) {
//func2开始
e.preventDefault();
//取消导向链接
if
($(
this
).text() !=
"上一页"
&& $(
this
).text() !=
"下一页"
)
current = $(
this
).text();
//记录当前页
//alert(current);
$.post(
"NoRefreshPage.ashx"
, {
"action"
:
"page"
,
"pageindex"
: $(
this
).text() },
function
(data, status) {
//func3开始
if
(status ==
"success"
) {
//if2开始
var
list = $.parseJSON(data);
$(
"#order"
).empty();
for
(
var
i = 0; i < list.length; i++) {
//for开始
var
li = $(
"<li >orderid="
+ list[i].orderid +
"| customid="
+ list[i].customid
+
"| employid="
+ list[i].employid +
" <a id="
+ list[i].orderid +
" href=''> 删除</a></li>"
);
$(
"#order"
).append(li);
}
//for循环结束
$(
"#order li a"
).click(
function
(e) {
//绑定 删除 事件
e.preventDefault();
// alert($(this).attr("id"));
if
(confirm(
"确认删除"
)) {
//确认提示
$.post(
"NoRefreshPage.ashx"
, {
"action"
:
"remove"
,
"rid"
: $(
this
).attr(
"id"
) },
function
(data, status) {
if
(status ==
"success"
) {
if
(data ==
"ok"
) {
$(
"#order li:eq("
+
this
+
")"
).remove();
$(
"#trPage td[title=td"
+ current +
"]"
).click();
//单击重新获取当前页.
}
else
{ alert(
"错误"
); }
}
//if
else
{ alert(
"删除失败"
); }
}
// fun end
);
//post end
}
});
//绑定删除事件结束
}
//if2结束
else
{ alert(
"错误页码"
); }
}
//func3结束
);
//post结束
});
//func2、页码事件结束
}
//if结束/
else
{ alert(
"获取分页失败"
); }
});
//func、post结束/
}
//整个函数结束
|
代码比较乱,没有具体函数化,注释已经和清晰。
前台html代码:
1
2
3
4
5
|
<
div
>
<
ul
id
=
"order"
></
ul
>
<
table
><
tr
id
=
"trPage"
></
tr
></
table
>
<
input
type
=
"button"
id
=
"Button1"
onclick
=
"btnList()"
value
=
"显示分页"
/>
</
div
>
|
后台C#代码(该代码在一般处理程序中写):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
public
class
NoRefreshPage : IHttpHandler
{
static
string
sqlstr =
@"Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=True"
;
SqlConnection sqlconn =
new
SqlConnection(sqlstr);
public
void
ProcessRequest(HttpContext context)
{
context.Response.ContentType =
"text/plain"
;
string
action = context.Request[
"action"
];
if
(action ==
"pagenum"
)
{
context.Response.Write( GetPageNum());
}
else
if
(action ==
"page"
)
{
int
pageindex=Convert.ToInt32( context.Request[
"pageindex"
]);
string
jsText = GetContextByPageIndex(pageindex);
context.Response.Write(jsText);
}
else
if
(action ==
"remove"
)
{
string
OrderID = context.Request[
"rid"
];
int
result = DelOrdersByID(OrderID);
if
(result >= 0)
{
context.Response.Write(
"ok"
);
}
}
}
/// <summary>
/// 根据ID删除对应的数据行
/// </summary>
/// <param name="OrderID">ID</param>
/// <returns>受影响行数</returns>
private
int
DelOrdersByID(
string
OrderID)
{
string
sql =
"delete from orders where OrderID=@OrderID"
;
SqlCommand cmd =
new
SqlCommand(sql, sqlconn);
cmd.Parameters.AddWithValue(
"OrderID"
, OrderID);
sqlconn.Open();
int
result = cmd.ExecuteNonQuery();
sqlconn.Close();
return
result;
}
/// <summary>
/// 根据页索引获取对应的数据
/// </summary>
/// <param name="pageindex">页索引</param>
/// <returns>经过JSON序列化的字符串</returns>
private
string
GetContextByPageIndex(
int
pageindex)
{
string
sql =
"select * from ( select *,ROW_NUMBER() over(order by orderid) rownum "
+
" from orders where OrderID between 10263 and 10611 ) temp "
+
" where temp.rownum >=@startindex and temp.rownum<=@endindex"
;
//这边应该使用存储过程,测试作用,直接写sql语句了.
SqlDataAdapter sda =
new
SqlDataAdapter(sql, sqlconn);
DataSet ds =
new
DataSet();
sda.SelectCommand.Parameters.AddWithValue(
"startindex"
, (pageindex - 1) * 10 + 1);
sda.SelectCommand.Parameters.AddWithValue(
"endindex"
, pageindex * 10);
sda.Fill(ds,
"order"
);
List<Orders> list =
new
List<Orders>();
foreach
(DataRow dr
in
ds.Tables[0].Rows)
{
list.Add(
new
Orders { orderid = dr[0].ToString(), customid = dr[1].ToString(), employid = dr[2].ToString() });
}
JavaScriptSerializer jss =
new
JavaScriptSerializer();
string
jsText = jss.Serialize(list);
return
jsText;
}
/// <summary>
/// 获取总页数
/// </summary>
/// <param name="oneRow">每页行数</param>
/// <returns>总页数</returns>
private
int
GetPageNum(
int
oneRow)
{
string
sql =
"select count(*) from orders where OrderID between 10263 and 10611"
;
SqlCommand cmd =
new
SqlCommand(sql, sqlconn);
sqlconn.Open();
int
rownum = Convert.ToInt32(cmd.ExecuteScalar());
sqlconn.Close();
if
(rownum % oneRow != 0)
{
rownum++;
}
return
rownum / oneRow;
}
|
本文从百度空间搬家到博客园。