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

时间:2013-02-15 11:19:44

标签: jquery jqgrid

我的专栏“动作”有图片。

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();


}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

首先,您使用setRowData来构建网格数据。相反,使用custom formatter更有效。除此之外,您使用gridview: true不仅可以简化代码,还可以提高性能(有关详细信息,请参阅the answer)。

要将网页重定向到新位置,您只需为location.href分配新网页的完整网址即可。不需要window.open。您可以使用其他参数附加URL。如果您需要使用HTTP GET访问新页面,则该方法非常有效。如果您需要使用POST提交表单,您可以动态构建<form>只使用现有的隐藏表单。无论如何,使用以上所有方法混合都是错误的。

此外,我建议您不要使用onclick属性来启动全球功能onAdd。相反,您可以使用beforeSelectRowonCellSelect回调,因为event bubbling会调用这些回调。请查看the answer以获取代码示例。