我正在使用 Grails 和 jqGrid 并试图让一个相当奇怪的扩展工作:我想让用户上传一个文件,该文件将传递给 jqGrid 控制器并用于过滤数据。例如,该文件是一个名称列表,网格将被过滤为包含这些名称的行。有什么简单的方法可以做到这一点吗?
我一直在尝试将 AJAX 文件上传器与 FormData 对象一起使用,并尝试将其附加到 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>
这是我能够让文件数据到达控制器的唯一方法,但它似乎覆盖了网格中的所有其他搜索/排序/分页参数。如果我将“数据”ajax 参数定义为键:对象对,那么网格将不会重新加载,甚至不会给我一个错误!如果有人对此有任何建议,我将不胜感激!非常感谢!