一起谈.NET技术,ASP.NET MVC2实现分页和右键菜单

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

  首先,下载此插件

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

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

  定义右键菜单:


<div class="contextMenu" id="myMenu1">
<ul>
<li id="detail"><img src="http://www.cnblogs.com/Content/detail.ico" />detail</li>
<li id="new"><img src="http://www.cnblogs.com/Content/new.ico" />new</li>
<li id="delete"> <img src="http://www.cnblogs.com/Content/delete.ico"/>delete</li>
<li id="modify"><img src="http://www.cnblogs.com/Content/modify.ico"/>modify</li>
</ul>
</div>

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


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

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


<script type="text/javascript">
$(document).ready(function () {
$('td.showContext').contextMenu('myMenu1', {
bindings: {
'detail': function (t) {
document.location.href = '/Products/Detail/'+t.id;
},
'new': function (t) {
document.location.href = '/Products/Detail/' + t.id;
},
'delete': function (t) {
confirm("你确定删除吗?");
document.location.href = '/Products/Detail/' + t.id;
},
'modify': function (t) {
document.location.href = '/Products/Detail/' + t.id;
}
}
});
});
</script>

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

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

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


<table>
<tr>
<th>
ProductName
</th>
<th>
SupplierID
</th>
<th>
CategoryID
</th>
<th>
QuantityPerUnit
</th>
<th>
UnitPrice
</th>
<th>
UnitsInStock
</th>
<th>
UnitsOnOrder
</th>
<th>
ReorderLevel
</th>
<th>
Discontinued
</th>
</tr>

<% foreach (var item in Model.Products)
{ %>
<tr>
<td class="showContext" id="<%= item.ProductID %>"><%: item.ProductName %></td>
<td>
<%: item.SupplierID %>
</td>
<td>
<%: item.CategoryID %>
</td>
<td>
<%: item.QuantityPerUnit %>
</td>
<td>
<%: String.Format("{0:F}", item.UnitPrice) %>
</td>
<td>
<%: item.UnitsInStock %>
</td>
<td>
<%: item.UnitsOnOrder %>
</td>
<td>
<%: item.ReorderLevel %>
</td>
<td>
<%: item.Discontinued %>
</td>
</tr>
<% } %>
</table>

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


public static string Pager(this HtmlHelper helper, int currentPage, int currentPageSize, int totalRecords, string urlPrefix)
{
StringBuilder sb1 = new StringBuilder();

int seed = currentPage % currentPageSize == 0 ? currentPage : currentPage - (currentPage % currentPageSize);

if (currentPage > 0)
sb1.AppendLine(String.Format("<a href=\"{0}/{1}\">Previous</a>", urlPrefix, currentPage));

if (currentPage - currentPageSize >= 0)
sb1.AppendLine(String.Format("<a href=\"{0}/{1}\">...</a>", urlPrefix, (currentPage - currentPageSize) + 1));

for (int i = seed; i < Math.Round((totalRecords / 10) + 0.5) && i < seed + currentPageSize; i++)
{
sb1.AppendLine(String.Format("<a href=\"{0}/{1}\">{1}</a>", urlPrefix, i + 1));
}

if (currentPage + currentPageSize <= (Math.Round((totalRecords / 10) + 0.5) - 1))
sb1.AppendLine(String.Format("<a href=\"{0}/{1}\">...</a>", urlPrefix, (currentPage + currentPageSize) + 1));

if (currentPage < (Math.Round((totalRecords / 10) + 0.5) - 1))
sb1.AppendLine(String.Format("<a href=\"{0}/{1}\">Next</a>", urlPrefix, currentPage + 2));

return sb1.ToString();
}

  然后在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

时间: 2024-12-03 02:14:23

一起谈.NET技术,ASP.NET MVC2实现分页和右键菜单的相关文章

ASP.NET MVC2实现分页和右键菜单

右键菜单非常方便,很多时候会用到.这篇文章将使用一个JQUERY的插件在asp.net mvc中实现右键菜单.本文还将介绍一下在asp.net mvc中如何实现简单的分页.效果如下图: 首先,下载此插件. 新建一个asp.net mvc应用程序.将此插件放入Scripts文件夹.并在页面上引用. 这个demo使用到NORTHWND数据库的Product表. 定义右键菜单: <div class="contextMenu" id="myMenu1"> &l

一起谈.NET技术,在MVC2.0使用Lodop为WEB打印提出完美解决方案

通过好友CallHot介绍Lodopweb打印控件.由于是国人开发的,故这两天认真了研究下,打算在未来的项目中使用.现将学习成果与园友分享.如果存在不足的地方,希望您指出. 具体的实现步骤如下: 一.准备工作   1.MVC2.0 + jQuery1.4.1 开发环境. 2.Lodop web 打印控件,官方地址:http://mtsoftware.v053.gokao.net/download.html  (注:国人开发,免费软件). 3.StringTemplate,C#开源模板引擎.官方地

一起谈.NET技术,在MVC2.0 中 遭遇无法被 Try Catch 的 “Exception”

前天当我为新项目新增完日志模块后对日志模块进行测试,测试时居然发现开发人员一段非常简单的代码,而且很标准的try ... catch .. 写法.代码整理如下: public JsonResult SaveTest(){try {//LinqToSql:返回IQueryable数据集合. var iQueryableData = (from o in _Context.Orders//.Where(o => o.OrderID == 10248) select new { ShipName =

一起谈.NET技术,Windows Mobile 6.5的开始菜单

缘由 由于 luafie 对 Windows Mobile打包时增加快捷方式到开始菜单的方法 有些疑问,我把自己的经验总结一下.   历史发展 Windows Mobile的开始菜单一直被我认为是错误的设计.我之前就讨论过我对菜单的看法,可以参考 Mircosoft 正式把Windows Mobile改名为Windows Phone,你会因此而购买Windows Phone吗?    开始菜单是Windows的制胜法宝,如下图. 却却是Windows Mobile的历史包袱,下图为Windows

ASP.NET MVC 2右键菜单和简单分页实例讲解_实用技巧

右键菜单非常方便,很多时候会用到.这篇文章将使用一个JQUERY的插件在ASP.NET MVC中实现右键菜单.本文还将介绍一下在ASP.NET MVC中如何实现简单的分页.效果如下图: 新建一个asp.net mvc应用程序.将此插件放入Scripts文件夹.并在页面上引用. 定义右键菜单: <div class="contextMenu" id="myMenu1"> <ul> <li id="detail">

一起谈.NET技术,巨大转变!ASP.NET MVC2行为方法新改进

在 上一篇文章中,我们看到了构建用户界面的基本实现.但在现实世界中,我们需要使用更加复杂的方法来开发出更复杂的用户界面.例如,用户不希望点击应用程序中的多个链接才浏览到他们想要的信息,他们希望能够很方便的在一个视图中便取得他们要求的所有信息. 在ASP.NET MVC中,我们仍然可以使用用户控件来创建一个应用程序中的可重用组件-它们被称为部分视图(Partial View).自从ASP.NET MVC 1.0始就提供了这一支持.在本文中,我们还要使用这种方法,并且结合MVC 2.0中提供的一个新

一起谈.NET技术,MSDN Webcast:ASP.NET MVC2程序开发入门到精通系列课程

课程讲师:苏鹏 MSDN特邀讲师北京工业大学软件工程硕士,微软最有价值专家(ASP.NET MVP),微软MSDN特约讲师.曾于微软亚洲工程院MSN组工作,现任中国网通四分公司技术支持与项目部开发经理.具有多年电信系统与OA系统实施经验. 课程下载: ASP.NET MVC2程序开发入门到精通系列课程(1):MVC架构概述 ASP.NET MVC2程序开发入门到精通系列课程(2):MVC范例分享 ASP.NET MVC2程序开发入门到精通系列课程(3):MVC中的View实现技巧(上) ASP.

一起谈.NET技术,巨大转变!ASP.NET MVC2调用AJAX新特征

在ASP.NET MVC编程中使用AJAX功能是非常简单的.借助于JQuery框架,你还可以增加其他的优秀特征并且使AJAX调用特别简单.本文中,我们将探讨这方面的编程内容. 一.检测一个AJAX请求 在Web表单中,创建AJAX请求典型的方法是使用一个更新面板.当更新面板回寄时,ScriptManager提供一个方法(通过其isInAsyncPostBack属性)来检测服务器上的AJAX回寄.ASP.NET MVC也提供了类似的机制.因为AJAX能够调用行为方法,所以我们需要一种方法来检测一个

一起谈.NET技术,十步教你ASP.NET MVC2项目升级MVC 3 RC

微软在10号发布了ASP.NET MVC3的发布候选版(RC:Release-candidate),该版本提供了Razor视图引擎的智能感知等功能,并同样具备Online许可.眼馋的同学是不是已经迫不及待的想将现有项目升级呢?这里我就将官方ReleaseNotes中的升级办法翻译总结一下,以方便那些不喜欢看罗里啰嗦的英文文档的广大同学. 译文 要将现有的ASP.NET MVC2项目手动升级到ASP.NET MVC3(RC),我们需要如下这些步骤: 1. 随便创建一个新的ASP.NET MVC3项