打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ASP.NET MVC2右键菜单和最简单分页-- .Net,资源天空 -- 领先的中文IT...
userphoto

2010.08.22

关注

    右键菜单非常方便,很多时候会用到。这篇文章将使用一个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="//www.cnblogs.com/Content/detail.ico" />detail</li>
    4 <li id="new"><img src="//www.cnblogs.com/Content/new.ico" />new</li>
    5 <li id="delete"> <img src="//www.cnblogs.com/Content/delete.ico"/>delete</li>
    6 <li id="modify"><img src="//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 == 0 ? currentPage : currentPage - (currentPage % currentPageSize);
    6
    7 if (currentPage > 0)
    8 sb1.AppendLine(String.Format("<a href=\"{0}/{1}\">Previous</a>", urlPrefix, currentPage));
    9
    10 if (currentPage - currentPageSize >= 0)
    11 sb1.AppendLine(String.Format("<a href=\"{0}/{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=\"{0}/{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=\"{0}/{1}\">...</a>", urlPrefix, (currentPage + currentPageSize) + 1));
    20
    21 if (currentPage < (Math.Round((totalRecords / 10) + 0.5) - 1))
    22 sb1.AppendLine(String.Format("<a href=\"{0}/{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://zhuqil.cnblogs.com

    本文示例源代码或素材下载

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
win10 IIS发布asp.net MVC网站
学习制作MVC4分页控件(上)
有了jsRender,妈妈再也不用担心我用jq拼接DOM拼接的一团糟了、页面整齐了、其他伙伴读代码也不那么费劲了
ASP分页技术源码
DataList控件实现分页功能
ASP.NET 数据列表控件的分页总结(二):使用存储过程分页
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服