将数据从jQueryAjax传递到grails控制器
我目前有一个jqgrid,其中包含这段代码,直到我将数据传递到ajax post为止将数据从jQueryAjax传递到grails控制器,jquery,grails,jqgrid,Jquery,Grails,Jqgrid,我目前有一个jqgrid,其中包含这段代码,直到我将数据传递到ajax post为止 $("#getSelected").click(function(){ var ids = grid.jqGrid('getGridParam','selarrrow'); if (ids.length>0) { var names = []; for (var
$("#getSelected").click(function(){
var ids = grid.jqGrid('getGridParam','selarrrow');
if (ids.length>0) {
var names = [];
for (var i=0, il=ids.length; i < il; i++) {
var name = grid.jqGrid('getCell', ids[i], 'Name');
names.push(name);
}
//alert ("Names: " + names.join(", ") + "; ids: " + ids.join(", "));
$("#names").html(names.join(", "));
$("#dialog-confirm").dialog({
height:280,
modal:true,
buttons:{
'Cancel': function(){
$(this).dialog('close');
},
'Confirm': function(){
// alert("Confirm");
//alert ("Names: " + names.join(", ") + "; ids: " + ids.join(", "));
$.ajax({
type: "POST",
url: "/MyController/downloadFile/",
data: { method: "downloadFile",
orderNum: JSON.stringify(ids),
names: JSON.stringify(names)
},
dataType: "json",
success: function(msg){
alert(msg);
},
error: function(res, status, exception) {
alert(res);
}
});
}
}
});
}
});
$(“#getSelected”)。单击(函数(){
var id=grid.jqGrid('getGridParam','selarrrow');
如果(ID.长度>0){
变量名称=[];
对于(var i=0,il=ids.length;i
然后我想发布数据并在我的控制器方法中获取它。控制器方法是downloadFile,我只希望它将所有名称写入该文件。这是我当前的下载文件工作版本
def downloadFile =
{
def date = new Date()
SimpleDateFormat sdf = new SimpleDateFormat("MMddyyyy")
File file = File.createTempFile("MyData",".txt")
file.write("hello world!")
String MyTitle = "ChangeMe" + sdf.format(date).toString()
response.setHeader "Content-disposition", "attachment; filename=${MyTitle}"
response.contentType = 'text-plain'
response.outputStream << file.text
response.outputStream.flush()
}
def下载文件=
{
定义日期=新日期()
SimpleDataFormat sdf=新的SimpleDataFormat(“MMddyyyy”)
File File=File.createTempFile(“MyData”,“.txt”)
file.write(“你好,世界!”)
字符串MyTitle=“ChangeMe”+sdf.format(date).toString()
response.setHeader“内容处置”,“附件;文件名=${MyTitle}”
response.contentType='text plain'
response.outputStream是否要通过ajax打开下载对话框?出于安全考虑,JavaScript在设计上无法在用户计算机上执行较低级别的任务。启动文件下载提示是这些限制之一。我认为您需要使用隐藏的iframe或JQuery插件,如。很棒的链接似乎无法自定义您下载的文件。这只是一个插件示例。您可以查找其他插件或查找隐藏的iframe解决方案。