2015-04-27 2 views
1

Я следовал этой ссылке http://www.codeproject.com/Tips/615776/WebGrid-in-ASP-NET-MVC Это хорошо для одного WebGrid, но если я создать два webgrids в одной странице с различным числом столбцов я получаю ошибки, как решить эту проблемуМогу ли я использовать два webgrids в ASP.NET MVC

@{ 
    var grid = new WebGrid(Model, canPage: true, rowsPerPage: 5, 
    selectionFieldName: "selectedRow",ajaxUpdateContainerId: "gridContent"); 
     grid.Pager(WebGridPagerModes.NextPrevious);} 

<div id="gridContent"> 
    @grid.GetHtml(tableStyle: "webGrid", 
      headerStyle: "header", 
      alternatingRowStyle: "alt", 
      selectedRowStyle: "select", 
      columns: grid.Columns(
      grid.Column("Id", format: (item) => item.GetSelectLink(item.Id)), 
      grid.Column("Name", format: (item) => item.GetSelectLink(item.Name)), 
      grid.Column("Description", "Description", style: "description") 
    )) 
</div> 

    @{ 
    var gridsecond = new WebGrid(Model, canPage: true, rowsPerPage: 5, 
    selectionFieldName: "selectedRow", ajaxUpdateContainerId: "secondgridContent"); 
     grid.Pager(WebGridPagerModes.NextPrevious);} 

<div id="secondgridContent"> 
    @gridsecond.GetHtml(tableStyle: "webGrid", 
      headerStyle: "header", 
      alternatingRowStyle: "alt", 
      selectedRowStyle: "select", 
      columns: gridsecond.Columns(
      gridsecond.Column("Id", format: (item) => item.GetSelectLink(item.Id)), 
      gridsecond.Column("Name", format: (item) => item.GetSelectLink(item.Name)), 
      gridsecond.Column("Description", "Description", style: "description"), 
      gridsecond.Column("Quantity", "Quantity") 
    )) 
</div> 
+0

Какие ошибки вы получаете? –

+0

столбец «Количество» не существует для первой сетки – peter

+0

Попробуйте изменить grid.Pager (WebGridPagerModes.NextPrevious) во второй сетке на ** gridsecond **. Pager (WebGridPagerModes.NextPrevious) –

ответ

2

Если у вас есть несколько WebGrids на той же странице, вы должны обеспечить каждый с уникальным FieldNamePrefix и PageFieldName значение. Вы можете сделать это через свой конструктор:

var grid1 = new WebGrid(Model1, fieldNamePrefix: "g1", pageFieldName: "p1"); 
var grid2 = new WebGrid(Model2, fieldNamePrefix: "g2", pageFieldName: "p2"); 
+0

Если это работает , то ты чемпион, давай попробуй – peter

+0

Я гугл, несколько раз, но ты единственный, чемпионская работа – peter