私は Grails と jqGrid を使用しており、かなり奇妙な拡張機能を動作させようとしています: jqGrid コントローラーに渡され、データのフィルター処理に使用されるファイルをユーザーがアップロードできるようにしたいと考えています。たとえば、ファイルは名前のリストであり、グリッドはそれらの名前を含む行にフィルターされます。これを行う簡単な方法はありますか?
私が試みているのは、FormData オブジェクトで AJAX fileuploader を使用し、それを jqGrid パラメータにアタッチしようとすることです。私が得た最も近いものは、次を使用することですが、奇妙な動作が発生しています:
<g:form enctype="multipart/form-data" class="upload" name="fileinfo" id="fileinfo">
<input name="uploadField" id="uploadField" type="file" value="">
<input id="btnFilterFile" type="button" onclick="addFileFilter()" value="Apply Filter"/>
</g:form>
<table id="theGrid"></table>
<script>
function addFileFilter() {
var oData = new FormData(document.forms.namedItem("fileinfo"));
$("#theGrid").setGridParam({ajaxGridOptions:
{processData:false, type:'POST', data:oData}});
$("#theGrid").trigger("reloadGrid");
}
</script>
これは、ファイル データをコントローラーに到達させることができた唯一の方法ですが、グリッドからの他のすべての検索/並べ替え/ページング パラメーターを上書きするようです。"data" ajax パラメーターを key:object ペアと定義すると、グリッドは単純にリロードされず、エラーも発生しません! 誰かがこれについて何かアドバイスがあれば、本当に感謝します! 本当にありがとう!