jqGridはpostdataをコントローラーに送信しません。私はstackoverflowで提供されたすべてのソリューションを試しましたが、どこかでエラーが発生しているようです。だからここにコードがあります:
関数refreshGrid(){ alert('CompanyNamePart ='+ $( "#CompanyNamePart")。val()); //これが正しい値かどうかを確認します $( "#list")。trigger('reloadGrid'); falseを返します。 } $(関数(){ var grid = jQuery( "#list")。jqGrid({ データ型:'json'、 キャプション:「トランザクションログ」、 ポストデータ:{ CompanyNamePart:function(){return $( "#CompanyNamePart")。val(); }、 UsernamePart:function(){return $( "#UsernamePart")。val(); }、 }、 url:'@ Url.Action( "GetTransactionLogData")'、 mtype:'GET'、 colNames:['Ref。'、'TradeDate'、'Status']、 colModel:[ {名前:'参照'、インデックス:'参照'、幅: '60'}、 {名前:'TradeDate'、インデックス:'TradeDate'、幅: '70'}、 {名前:'ステータス'、インデックス:'ステータス'、幅:'80'} ]、 ポケットベル:$('#pager')、 rowNum:10 高さ:「100%」 }); });
コントローラー側には、簡単なコードがあります。
[HttpGet] public ActionResult GetTransactionLogData(string sidx、string sord、int page、int rows、string CompanyNamePart、string UsernamePart) {return Json(null); }
デバッグモードでボタンをクリックしてrefreshGrid()を呼び出すと、テキストフィールドの値が正しく読み取られたことを確認するアラートが1つ表示され、その後グリッドが更新されます。コントローラの呼び出しを受け取りましたが、CompanyNamePart変数とUsernamePart変数の値を入力しても、すべてnullです。
別のアプローチでpostdataセクションの別のソリューションを試しました。最初に、必要な値を返す関数を作成し、それらをグリッドのpostdataセクションに配置しました。
関数getCompanyNamePartVal(){ $( "#CompanyNamePart")。val();を返します。 } 関数getUsernamePartVal(){ $( "#UsernamePart")。val();を返します。 } ...jqgridの定義 ポストデータ:{ CompanyNamePart:getCompanyNamePartVal()、 UsernamePart:getUsernamePartVal()、 }、
しかし、成功しませんでした。
Firebugをチェックしたところ、jqGridがpostdata値を送信していないことがわかりました。
Firebugによってキャッチされたパラメータを取得する _ 1340696638960 _search false nd 1340696638955 ページ1 行10 sidx sord asc
私は何が間違っているのですか?