zoukankan      html  css  js  c++  java
  • 一起谈.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

  • 相关阅读:
    在使用SMO时,检索IsSystemObject属性将导致性能急剧下降的解决方法
    在没有安装.NET Framework 3.5的机器上使用LINQ等特性
    我的网站中的组织层次结构图信息与AD的同步问题
    有关视图状态(ViewState)的一些问题
    窗体控件visible属性问题
    SiteMapNode的几个特殊属性
    创建本地数据库时发生错误及其解决方案
    在基于Windows验证的Web应用程序中检索当前用户的所有角色
    在数据库恢复之前将数据库置为单用户模式
    将ASP.NET网站嵌入到MOSS站点下面的做法
  • 原文地址:https://www.cnblogs.com/waw/p/2158649.html
Copyright © 2011-2022 走看看