2012-03-09 2 views
0

私はjqgridのテキストボックスにオートコンプリートを使用しています。しかし、私は同じ項目を2回選択することを許可すべきではありません。ページ区切りのために、彼はすべてのデータを常に見ることはありません。サーバーに新しい行を送信するとサーバーの重複データをチェックし、jqgridにアラートをポップアップさせる方法がありますか? "行は既にテーブルに存在しています"。この検証を行い、ユーザに通知するにはどうすればよいでしょうか?ありがとう。サーバー上のjqgridデータの検証、コールバック関数

$("#assessmentproduct").jqGrid({ 
      url: 'orthofixServices.asmx/GetProductList', 
      colNames: ['id', 'Product Description', 'Commission Rate'], 
      colModel: [ 
      { name: 'id', hidden: true }, 
      { name: 'description', index: 'desc', width: 320, editable: true }, 
      { name: 'commissionrate', index: 'com', width: 120, editable: true, unformat: percentUnFormatter, formatter: percentFormatter, editrules: { number: true} } 
      ], 
      serializeRowData: function(data) { 

       var params = new Object(); 
       params.id = 0; 
       params.prdid = $("#prdid").val(); 
       params.description = data.description; 
       params.commissionrate = data.commissionrate; 
       var result = JSON.stringify({ 'passformvalue': params, 'oper': data.oper, 'id': data.id }); 
       return result; 
      }, 
      mtype: "POST", 
      rowNum: 4, 
      height: 93, 
      width: 400, 
      pager: '#assessmentpager', 
      editurl: "orthofixServices.asmx/ModifyProductList" 
     }); 
     $("#assessmentproduct").jqGrid('navGrid', '#assessmentpager', { add: false, edit: false, del: true, refresh: false, search: false }, {}, {}, { serializeDelData: function(postData) { 
      return JSON.stringify({ 'passformvalue': null, 'oper': postData.oper, 'id': postData.id }); 
     } 
     }); 
     $("#assessmentproduct").jqGrid('inlineNav', '#assessmentpager', { addParams: { position: "last", addRowParams: { 
      "errorfunc": duplicateRow, "aftersavefunc": function() { var grid = $("#assessmentproduct"); reloadgrid(grid); } 
     } 
     }, editParams: { "aftersavefunc": function() { var grid = $("#assessmentproduct"); reloadgrid(grid); } } 
     }); 
+0

私は今すぐ自分のファイルの上に新しいコードを入力しました。 afterFuncをaddRowParmasの場所に移動しただけです。おはよう –

答えて

0

あなただけの単純なルールを保持する必要があります:エラーが(理由は検証エラーの例については)サーバー上で発生した場合、サーバーの応答は、いくつかのerror HTTP status codeが含まれていなければなりません。この場合、エラーメッセージがユーザーに表示されます。

正確なエラー処理と表示されるエラーメッセージの形式は、使用する編集モードによって異なります。インライン編集の場合はeditRowメソッドのerrorfuncrestoreAfterErrorのパラメータを使用することをお勧めします。フォーム編集の場合、errorTextFormatコールバックは非常に役に立ちます。

+0

私はサーバーでエラーを処理できました。ただし、エラーが表示されると、グリッドは無効になります。それは役に立たない私はそれで何か他のことをすることはできません...どうすればこれを処理できますか? –

+0

@ManuelValle:あなたが使用するコードを投稿するべきです。 – Oleg

+0

私は自分のコードを投稿しました。サーバーは2を返し、特定のエラーがあったことを知ります。 –

関連する問題