0

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>

したがって、解読できるように、ここでの考え方は、ユーザーが /Date を取得すると、デフォルトのデータ セットが表示されるということです。ユーザーが開始日と終了日を /Date に投稿すると、そのデータのサブセットがユーザーに表示されます。

/Date を取得すると、ページ化された結果セット (グリッドの下のページ番号) が得られます。その後、POST して新しいデータを取得し、ページ番号のいずれかをクリックすると、グリッドは、元の結果セットと元のページングでリロードされます!

それをリセットする方法はありますか?どんな助けでも大歓迎です!

4

1 に答える 1

0

わかりました-それはまさにあなたが望むものではありません-しかし、webgrid コードを修正するのではなく、webgrid を扱うときの私の推奨事項は、はるかに優れたコントロール (私見) の Telerik MVC グリッドを使用してそれを削除することです。無料でオープンソースで、非常に使いやすいです。約 2 行のコードで ajax ページングをセットアップできます。次の場所からダウンロードしてください。

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

ネット上にはたくさんの情報がありますが、デモを見ると非常に簡単です。私に関する限り、私が言ったように、無料でオープンソースであることに比較の余地はありません。

于 2011-06-15T04:12:22.690 に答える