Jquery jqGrid。自定义按钮。如何重定向页面?

Jquery jqGrid。自定义按钮。如何重定向页面?,jquery,jqgrid,Jquery,Jqgrid,我有一个有图片的“动作”专栏 add = "<input type='image' src='/add_24.png' onclick='onAdd('"+row_id+"','"+subgridTableId+"')';/>"; $("#"+subgridTableId).setRowData(ids[i], { act: add }); add=”“; $(“#”+subgridTableId).setRowData(id[i],{act:add}); 如何在点击功能中重定

我有一个有图片的“动作”专栏

add = "<input type='image' src='/add_24.png' onclick='onAdd('"+row_id+"','"+subgridTableId+"')';/>";

$("#"+subgridTableId).setRowData(ids[i], { act: add });
add=”“;
$(“#”+subgridTableId).setRowData(id[i],{act:add});
如何在点击功能中重定向当前页面

我试过所有已知的方法。但当前页面只是重新加载自己

这是我的onAdd func

function onAdd(id, pid) {

    window.open("www.msn.com");//1

    document.location.href = "sps/sites/main/export/_layouts/AddContractProperty.aspx";//2

    var form = $('<form>');//3
    form.attr('action', 'sps/sites/main/export/_layouts/AddContractProperty.aspx');
    form.attr('method', 'POST');

    // if(newWindow){ form.attr('target', '_blank'); }
    var input = $('<input type="hidden">');
    input.attr({ 'id': 'CID', 'value': cid});
    input.attr({ 'id': 'PID', 'value': pid});
    form.append(input);
    form.appendTo(document.body);
    form.submit();


}
添加(id、pid)的函数{ window.open(“www.msn.com”);//1 document.location.href=“sps/sites/main/export/\u layouts/AddContractProperty.aspx”;//2 变量形式=$('');//3 form.attr('action'、'sps/sites/main/export/_layouts/AddContractProperty.aspx'); form.attr('method','POST'); //if(newWindow){form.attr('target','u blank');} 变量输入=$(''); attr({'id':'CID','value':CID}); attr({'id':'PID','value':PID}); 表单。追加(输入); 格式附录(文件正文); 表单提交(); }
我做错了什么?

首先,您使用
setRowData
为网格构建数据。取而代之的是,使用它更有效。如果您使用
gridview:true
,则不仅可以简化代码,还可以提高代码的性能(有关详细信息,请参阅)

要将页面重定向到新位置,只需为
location.href
分配新页面的完整URL即可。无
窗口。需要打开
。您可以使用附加参数附加URL。如果您需要使用HTTP GET访问新页面,那么该方法非常有效。如果您需要在发布时使用表单提交,您可以动态地构建
,只需使用现有的隐藏表单即可。无论如何,混合使用上述所有方法都是错误的

此外,我建议您不要使用
onclick
属性来启动全局函数
onAdd
。相反,您可以在选择Row
之前使用
,或者在选择onCellSelect
回调之前使用
,这些回调将由于以下原因而被调用。请看下面的代码示例