MVC3 WebGrid хранит свои данные на странице после создания новой сетки через пост!

StackOverflow https://stackoverflow.com/questions/6351209

  •  28-10-2019
  •  | 
  •  

Вопрос

У меня есть проблема с прокладками WebGrid; Но сначала вот какой -то псевдод контроллера:

public ActionResult Date()
{
  var data = getLINQ();
  return View(data);
}

[HttpPost]
public ActionResult Date(string start, string finish)
{
   var data - getLINQ(start, finish);
   return View(data);
}

.. и некоторый код просмотра:

@model IEnumerable<ModelClass>

@{
   ViewBag.Title = "Date";
   Layout = "~/Views/Shared/_Layout.cshtml";
   var grid = new WebGrid(source: Model, rowsPerPage: 25);
}


@using (Html.BeginForm())
{
<fieldset>
    <span>From date: <input type="text" id="start" name="start" data-val="true" value="@ViewBag.start" /></span> 
    <span>To date: <input type="text" id="finish" name="finish" data-val="true" value="@ViewBag.finish" /></span>
    <input type="submit" value="Update" />
</fieldset>
}

<div>
@grid.GetHtml(tableStyle: "table", caption: "Claims Between " + @ViewBag.start + " and " + @ViewBag.finish, htmlAttributes: new { cellspacing = "0", cellpadding = "0", id = "_grid" }, 
                        columns: grid.Columns(
                        grid.Column("ID", "ID"),
                        grid.Column("DateReceived", "Date Received"),
                        grid.Column("Client", "Client"),
                        grid.Column("ReferenceNumber", "Reference Number"),
                        grid.Column("PatientLastName", "Patient Last Name"),
                        grid.Column("PatientFirstName", "Patient First Name"),
                        grid.Column("ClaimType", "Type"),
                        grid.Column("BilledCharges", "Billed Charges", item => String.Format("{0:C}", item.BilledCharges ?? 0)),
                        grid.Column("ReimbursementAgent", "Reimbursement Agent")))
</div>

Таким образом, как вы можете расшифровать, идея здесь заключается в том, что если пользователь получает /дата, им представлен набор данных по умолчанию. Если пользовательские публикации запускаются и завершают даты /дату, пользователю представлено этим подмножеством данных.

Это отлично работает банкомат, сохраните для одной ловушки: если вы получите /дату, у вас есть страховый набор результатов (номера страниц под сеткой), если вы отправляете и получите новые данные, затем нажмите на любое из номеров страниц, Сетка перезагружается с оригинальным результатом и с оригинальной пьесой!

Есть ли способ сбросить это? Любая помощь ценится!

Это было полезно?

Решение

ОК - это не совсем то, что вы хотите - но вместо того, чтобы исправлять код веб -грида, моя рекомендация при работе с веб -гридом состоит в том, чтобы отказаться от его использования гораздо лучшего контроля (IMHO) - сетки Telerik MVC. Это бесплатно, с открытым исходным кодом и очень прост в использовании. Вы можете настроить Ajax Paging с примерно двумя строками кода. Загрузите его по адресу:

http://telerikaspnetmvc.codeplex.com/

Демонстрация:http://demos.telerik.com/aspnet-mvc/grid/

запись в блоге:http://msmvps.com/blogs/bmains/archive/2010/01/04/using-the-telerik-mvc-grid.aspx

Много информации в сети - но демонстрация должна показать вам, что это довольно просто. Насколько я понимаю, нет сравнения - и, как я уже сказал - бесплатный и открытый исходный код.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top