$(document).readyに設定されているjqGridを次のように使用しています。
jQuery("#list").jqGrid({
datatype: 'json',
colNames: ['ID', 'Note', 'Date Added'],
colModel: [
{ name: 'ID', index: 'ID', width: 60, key: true },
{ name: 'ContactNote', index: 'ContactNote', width: 300, cellattr: function (rowId, tv, rawObject, cm, rdata) { return 'style="white-space: normal;"'; } },
{ name: 'ContactDate', index: 'DateAdded', width: 100 }
],
mtype: 'POST',
viewrecords: true,
jsonReader: { repeatitems: false },
ignoreCase: true,
height: 450,
loadonce: false,
onSelectRow: function (id) { $('#ContactId').val(id); }
});
このページのHTMLは次のとおりです。
<div class="col-12">
<div class="ui-content-6 ui-widget-content ui-corner-all">
@using (Html.BeginForm())
{
<h3 class="ui-widget-header ui-corner-all">Enter account number</h3>
<div class="field-container">
@Html.LabelFor(o => o.AccountNumber)
@Html.TextBoxFor(o => o.AccountNumber)
</div>
<div class="form-submit">
<button id="btnSearchContactItems">Get Contact Items</button>
</div>
<h3 class="ui-widget-header ui-corner-all">Contact item list</h3>
<table id="list" class="scroll" cellpadding="0" cellspacing="0"></table>
<div class="form-submit">
<button id="btnRemoveContactItem" type="submit">Remove Selected Contact Item</button>
</div>
@Html.HiddenFor(o => o.ContactId)
@Html.ValidationSummary()
}
</div>
btnSearchContactItemsボタンにはクリックイベントがあります。
$("#btnSearchContactItems").click(function () {
$("#list")
.jqGrid('setGridParam', { postData: { accountNumber: $('#AccountNumber').val() }, url: baseSearchURL })
.trigger('reloadGrid');
return false;
});
ここに問題があります:
ユーザーにアカウント番号を入力してもらい、btnSearchContactItemsボタンをクリックして、グリッドにメモを入力します。メモの1つを選択し、btnRemoveContactItemボタンをクリックすると、アクションが呼び出され、メモが削除されます。問題は、notが削除されると、グリッドが空になることです。私がしたいのは、削除された行を除いたデータでグリッドをリロードすることです。
私は、私の人生の間、データを再入力することはできません。グリッドロード、ページロードなどでボタンクリックを起動してみましたが、まだ何もありません。ボタンを物理的にクリックした場合にのみ、グリッドが再び塗りつぶされます。誰か考えがありますか?