您的位置:首页 > 编程语言 > ASP

ASP.NET MVC2右键菜单和最简单分页

2012-03-09 00:00 267 查看
右键菜单非常方便,很多时候会用到。这篇文章将使用一个JQUERY的插件在asp.net mvc中实现右键菜单。本文还将介绍一下在asp.net mvc中如何实现简单的分页。效果如下图:



首先,下载此插件

新建一个asp.net mvc应用程序。将此插件放入Scripts文件夹。并在页面上引用。

这个demo使用到NORTHWND数据库的Product表。

定义右键菜单:


1

<
div
class
="contextMenu"
id
="myMenu1"
>

2

<
ul
>

3

<
li
id
="detail"
><
img
src
="http://www.cnblogs.com/Content/detail.ico"

/>
detail
</
li
>

4

<
li
id
="new"
><
img
src
="http://www.cnblogs.com/Content/new.ico"

/>
new
</
li
>

5

<
li
id
="delete"
>

<
img
src
="http://www.cnblogs.com/Content/delete.ico"
/>
delete
</
li
>

6

<
li
id
="modify"
><
img
src
="http://www.cnblogs.com/Content/modify.ico"
/>
modify
</
li
>

7

</
ul
>

8

</
div
>

将此菜单定义在产品名上,故在在产品名上添加一个class供jquery选择。



<
td
class
="showContext"
id
="<%= item.ProductID %>"
>
<%
: item.ProductName
%>
</
td
>

在页面上插入下面脚本。用于绑定菜单项的行为。为了简单起见,将所以的菜单项的行为都定义成导航到详情页面。


1
<
script type
=
"
text/javascript
"
>

2

3
$(document).ready(
function
() {

4
$(
'
td.showContext
'
).contextMenu(
'
myMenu1
'
, {

5
bindings: {

6

'
detail
'
:
function
(t) {

7
document.location.href
=

'
/Products/Detail/
'
+
t.id;

8
},

9

'
new
'
:
function
(t) {

10
document.location.href
=

'
/Products/Detail/
'

+
t.id;

11
},

12

'
delete
'
:
function
(t) {

13
confirm(
"
你确定删除吗?
"
);

14
document.location.href
=

'
/Products/Detail/
'

+
t.id;

15
},

16

'
modify
'
:
function
(t) {

17
document.location.href
=

'
/Products/Detail/
'

+
t.id;

18
}

19
}

20
});

21
});

22

23

<
/
script>

这样就非常简单的实现了右键菜单的功能。

下面说下实现简单的分页。asp.net mvc中分页非常简单。

看下面定义的table的html代码:


1

<
table
>

2

<
tr
>

3

<
th
>

4
ProductName

5

</
th
>

6

<
th
>

7
SupplierID

8

</
th
>

9

<
th
>

10
CategoryID

11

</
th
>

12

<
th
>

13
QuantityPerUnit

14

</
th
>

15

<
th
>

16
UnitPrice

17

</
th
>

18

<
th
>

19
UnitsInStock

20

</
th
>

21

<
th
>

22
UnitsOnOrder

23

</
th
>

24

<
th
>

25
ReorderLevel

26

</
th
>

27

<
th
>

28
Discontinued

29

</
th
>

30

</
tr
>

31

32

<%
foreach (var item in Model.Products)

33
{
%>

34

<
tr
>

35

<
td
class
="showContext"
id
="<%= item.ProductID %>"
>
<%
: item.ProductName
%>
</
td
>

36

<
td
>

37

<%
: item.SupplierID
%>

38

</
td
>

39

<
td
>

40

<%
: item.CategoryID
%>

41

</
td
>

42

<
td
>

43

<%
: item.QuantityPerUnit
%>

44

</
td
>

45

<
td
>

46

<%
:
String
.Format(
"
{0:F}
"
, item.UnitPrice)
%>

47

</
td
>

48

<
td
>

49

<%
: item.UnitsInStock
%>

50

</
td
>

51

<
td
>

52

<%
: item.UnitsOnOrder
%>

53

</
td
>

54

<
td
>

55

<%
: item.ReorderLevel
%>

56

</
td
>

57

<
td
>

58

<%
: item.Discontinued
%>

59

</
td
>

60

</
tr
>

61

62

<%
}
%>

63

64

</
table
>

我们只要在这个table下面插入一段分页的HTML脚本就行了。分页的脚本当然要生成,使用Htmlhelper的扩展方法去生成这个脚本。看下面的扩展方法,非常的简单的生成了分页的html代码:


1

public

static

string
Pager(
this
HtmlHelper helper,
int
currentPage,
int
currentPageSize,
int
totalRecords,
string
urlPrefix)

2
{

3
StringBuilder sb1
=

new
StringBuilder();

4

5

int
seed
=
currentPage
%
currentPageSize
==

?
currentPage : currentPage
-
(currentPage
%
currentPageSize);

6

7

if
(currentPage
>

)

8
sb1.AppendLine(String.Format(
"
<a href=\
"
{

}
/
{
1
}\
"
>Previous</a>
"
, urlPrefix, currentPage));

9

10

if
(currentPage
-
currentPageSize
>=

)

11
sb1.AppendLine(String.Format(
"
<a href=\
"
{

}
/
{
1
}\
"
>...</a>
"
, urlPrefix, (currentPage
-
currentPageSize)
+

1
));

12

13

for
(
int
i
=
seed; i
<
Math.Round((totalRecords
/

10
)
+

0.5
)
&&
i
<
seed
+
currentPageSize; i
++
)

14
{

15
sb1.AppendLine(String.Format(
"
<a href=\
"
{

}
/
{
1
}\
"
>{1}</a>
"
, urlPrefix, i
+

1
));

16
}

17

18

if
(currentPage
+
currentPageSize
<=
(Math.Round((totalRecords
/

10
)
+

0.5
)
-

1
))

19
sb1.AppendLine(String.Format(
"
<a href=\
"
{

}
/
{
1
}\
"
>...</a>
"
, urlPrefix, (currentPage
+
currentPageSize)
+

1
));

20

21

if
(currentPage
<
(Math.Round((totalRecords
/

10
)
+

0.5
)
-

1
))

22
sb1.AppendLine(String.Format(
"
<a href=\
"
{

}
/
{
1
}\
"
>Next</a>
"
, urlPrefix, currentPage
+

2
));

23

24

return
sb1.ToString();

25
}

然后在table后面添加下面的代码,在table下面输出分页的html代码:



<
div
class
="pager"
>

<%
=
Html.Pager(Model.CurrentPage, Model.TotalPages,Model.TotalItems ,
"
/Products/List
"
)
%>

</
div
>

这样就完成分页和右键菜单的功能了。是不是非常的简单呢。:)

效果:



显示:



如果有兴趣可以下载代码。

总结:在asp.net mvc中实现右键菜单和简单的分页。

代码http://cid-aef1e64945224a20.office.live.com/self.aspx/.Public/ContextMenuDemo.rar

原文链接:
http://www.cnblogs.com/zhuqil/archive/2010/08/01/asp-net-mvc-context-menu-and-simple-paging.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: