1
エンティティを選択するためにjqGridを使用したHTMLフォーム(Razor)が用意されています(たとえば、顧客を想定してください)。 jqGridがどのように見えるのお客様:jqGrid:選択したIDをHTMLフォームパラメータとして渡します。
jQuery("#ajaxGrid").jqGrid({
url: '@Url.Action("CustomersData")',
datatype: 'json',
mtype: 'GET',
jsonReader: { repeatitems: false, id: "Id" },
colNames: ['Id', 'Name'],
colModel: [
{ name: 'Id', editable: true, sortable: false, hidden: false },
{ name: 'Name', editable: true, sortable: false, hidden: false }
],
multiselect: true,
viewrecords: true,
rowNum: 5,
width: '850',
height: '15em'
});
だから、グリッドは複数選択することができます。
問題は、選択された顧客IDを(IEnumerableとして)サブミット時(適切な送信アクションに)に渡す方法です。
私はそれがフォームパラメータとして選択されたすべてのIDを設定することによって行うことができると思います。私は配列からデータをコピーする方法を知らない:
var ids = jQuery("#ajaxGrid").getGridParam('selarrrow');
とHTMLフォームの隠し値。
[OK]をクリックします。いつ私はそれをしなければならないのですか?フォームを投稿する前に? –
@ Serge:もちろん、送信または投稿する前に非表示フィールドを設定する必要があります。これを行うための最良の場所は、プログラムの構成に依存します。確実に動作する方法は、 'onSelectRow'イベントハンドラの中に隠しフィールドを設定することです。 – Oleg
@@オレグ、ありがとう!できます! =) –