程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> ASP.NET MVC 2右鍵菜單和簡單分頁實例講解

ASP.NET MVC 2右鍵菜單和簡單分頁實例講解

編輯:ASP.NET基礎

右鍵菜單非常方便,很多時候會用到。這篇文章將使用一個JQUERY的插件在ASP.NET MVC中實現右鍵菜單。本文還將介紹一下在ASP.NET MVC中如何實現簡單的分頁。效果如下圖:

新建一個asp.net mvc應用程序。將此插件放入Scripts文件夾。並在頁面上引用。
定義右鍵菜單:

<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> 
    CategoryID11    </th> 
   <th> 
     QuantityPerUnit 
   </th> 
   <th> 
     UnitPrice 
   </th> 
    <th> 
    UnitsInStock20    </th> 
   <th> 
     UnitsOnOrder23    </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 2中的右鍵菜單和一個相當簡單的分頁,希望能夠幫助到大家熟練掌握分頁功能的實現。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved