2011-11-04 67 views
0

我使用MVC3 webgrid来显示,排序和分页数据。显示效果很好,但是当我点击一个新页面或请求排序时,什么都没有发生。为什么不是MVC3 webgrid分页和排序工作?

这是我使用的代码:

 @if (Model.AdsList != null) 
    { 

    WebGrid adGrid = new WebGrid(Model.AdsList, rowsPerPage: 10, canSort: true, ajaxUpdateContainerId: "adsGrid"); 
    <div> 
    @adGrid.Pager(WebGridPagerModes.NextPrevious); 
      @adGrid.GetHtml(tableStyle: "webGrid", 
       headerStyle: "header", 
       alternatingRowStyle: "alt", 
       htmlAttributes: new { id = "adsGrid", width = "100%" }, 
       columns: adGrid.Columns(
             //columns 
     )); 
    </div> 
} 

的数据是正确加载,但没有生成的链接都在工作。我需要在controller中进行分页和排序吗?

编辑:我得到这个页面作为从其他页面的后操作的结果。控制器中没有同名的GET操作。

代码在控制器

[HttpPost] 
    public ActionResult Search(SearchModel model) 
    { 
      //some operation 
      return view(model); 
    } 

我也想知道分页是如何工作如下所示。每当我点击下一页或排序链接时,是否对数据库进行webgrid查询?

+0

退房这篇文章在排序的WebGrid:http://weblogs.asp.net/andrebaltieri/ archive/2010/11/02/asp-net-mvc-3-working-with-webgrid-part-2.aspx – tskulbru

+0

将一个调试器添加到您的控制器中,然后单击分页或单击行标题。点击标题时,调试器会触发吗? –

回答

4
var grid = new WebGrid(source: Model, rowsPerPage: 6,canPage: true, canSort: true,); 

@grid.GetHtml(headerStyle: "gridtableheader", footerStyle: "paging",     
columns: 
grid.Columns(
//Columns 
), 
mode: WebGridPagerModes.All) 

//不同的寻呼

mode: WebGridPagerModes.FirstLast 
mode: WebGridPagerModes.NextPrevious 
mode: WebGridPagerModes.Numeric 

希望的模式,这将解决您的问题