我的专栏“动作”有图片。
add = "<input type='image' src='/add_24.png' onclick='onAdd('"+row_id+"','"+subgridTableId+"')';/>";
$("#"+subgridTableId).setRowData(ids[i], { act: add });
如何在 onClick 功能中重定向当前页面?
我尝试过所有已知的方法。但是当前页面只是重新加载。
有我的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();
}
我做错了什么?
答案 0 :(得分:0)
首先,您使用setRowData
来构建网格数据。相反,使用custom formatter更有效。除此之外,您使用gridview: true
不仅可以简化代码,还可以提高性能(有关详细信息,请参阅the answer)。
要将网页重定向到新位置,您只需为location.href
分配新网页的完整网址即可。不需要window.open
。您可以使用其他参数附加URL。如果您需要使用HTTP GET访问新页面,则该方法非常有效。如果您需要使用POST提交表单,您可以动态构建<form>
只使用现有的隐藏表单。无论如何,使用以上所有方法混合都是错误的。
此外,我建议您不要使用onclick
属性来启动全球功能onAdd
。相反,您可以使用beforeSelectRow
或onCellSelect
回调,因为event bubbling会调用这些回调。请查看the answer以获取代码示例。