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
私は何が間違っているのですか?