プレーン クラス オブジェクトにバインドされた WebGrid があります。ファンシーなものはありません。グリッドにはいくつかのページング機能があり、ユーザーのリストを表示するために使用されます。グリッドの最後の列は、いくつかの編集コントロールを含むポップアップ DIV を起動する Ajax アクション リンクです。この編集が完了すると、OnSuccess イベントが発生し、DIV が閉じます。これは、適用されている現在のページ/検索/フィルターを失うことなく、グリッドを更新したい場所です。頭に浮かぶ 1 つの方法は、何らかの方法で WebGrids Url を取得し、JQuery で更新することですが、現在の URL とパラメーターを取得する方法が見つかりませんか? 誰もこれを前に試しましたか?
更新:回答のおかげで、これが私が今頼っているものです:)
ajax 編集によって呼び出される ActionResult
[HttpPost]
public ActionResult EditUserDetails(User model)
{
if (ModelState.IsValid)
{
// for the sake of brevity.
// do your edit logic here and then on success you return:
return Json(new { state = "success", id = "1", name = "John", surname = "Doe", etc = "blah" });
}
else
{
return Json(new { state = "failed", message="some error text here maybe?" });
}
}
次に、編集をクリックすると、行のクラスが .editRowSelected に設定されます。(むしろこれをIDに変更します)
次に、Ajax Update Call の onSuccess:
function onSuccess(ajaxContext) {
var result = eval(ajaxContext);
if (result.state == "Success") {
var row = $('.busyEditRow');
row.html(content);
$('.busyEditRow').removeClass('busyEditRow');
}
else {
// Display some error stuffs here with the message - result.message
}
}
これにより、グリッド行が新しいデータで更新されます:)