Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery jqGrid内联导航器URL_Jquery_Ajax_Jqgrid - Fatal编程技术网

Jquery jqGrid内联导航器URL

Jquery jqGrid内联导航器URL,jquery,ajax,jqgrid,Jquery,Ajax,Jqgrid,现在正在使用jqGrid。还有一些问题 我想做的事情很简单。我为CRUD操作创建了自定义web服务。 使用ajax请求,我获取JSON并将其绑定到指定的jqGrid 现在我想使用他们新的内联导航器来创建新记录和更新现有记录。 正如我所知,有“editurl”属性来设置更新链接。但它也被用于添加项目 是否可以为不同的操作分离这些URL,并将带有行数据的JSON传递给我的服务?或者更好——在某种处理程序中,只是创建对服务的自定义Ajax请求 尝试使用inlineNav添加参数,但仅为“oneditf

现在正在使用jqGrid。还有一些问题

我想做的事情很简单。我为CRUD操作创建了自定义web服务。 使用ajax请求,我获取JSON并将其绑定到指定的jqGrid

现在我想使用他们新的内联导航器来创建新记录和更新现有记录。 正如我所知,有“editurl”属性来设置更新链接。但它也被用于添加项目

是否可以为不同的操作分离这些URL,并将带有行数据的JSON传递给我的服务?或者更好——在某种处理程序中,只是创建对服务的自定义Ajax请求

尝试使用inlineNav添加参数,但仅为“oneditfunc”设置了处理程序

在表单编辑方面没有这样的问题。也许我错过了什么

UPD:使用自定义的“保存”和“取消”按钮对其进行了自定义,我在其中发送了所需的请求。但希望,有没有更容易的解决办法

UPD我的示例在这里可用:在任何情况下-add或delete,始终只调用Edit方法。我做错了什么

UPD所描述的链接问题与跨域策略没有任何共同之处。当存在跨域问题时,会出现另一个错误,如“405方法不允许”等。部署的示例服务也有跨域请求的解决方法。是的,它在IE中不起作用,因为在我的客户端示例中,我没有添加
$.support.cors=true
,使它在IE中起作用。 你也可以在这里查看:这里有相对的URL添加和编辑。但是只调用Edit

还有使用jqgridtest.cloudapp.net的视频证明:如您所见,请求成功,因此没有跨域问题,但调用了编辑url。

该方法具有
addParams
editparms
选项。方法
addRow
具有
addRowParams
选项,可用于指定添加行期间使用的选项。因此,以下参数应该起作用

$("#grid").jqGrid("inlineNav", "#pager", {
    addParams: {
        addRowParams: {
            keys: true,
            url: "/MyAddRowAction"
        }
    },
    editParams: {
        keys: true,
        url: "/MyEditRowAction"
    }
});

更新:演示中的错误很简单:您使用
url:http://jqgridtest.cloudapp.net:81/Service1.svc/web/AddData“
url:”http://jqgridtest.cloudapp.net:81/Service1.svc/web/EditData“
在运行于
http://jqgridtest.cloudapp.net:8080/
。Ajax中有一个名称下的安全限制。您应该在同一ASP.NET站点中包含web服务
Service1.svc
(只需包含在同一项目中)。之后,您将能够使用相对URL路径,如
URL:“/Service1.svc/web/AddData”
URL:“/Service1.svc/web/EditData”
,您的代码将正常工作。

@sleepwalker:抱歉,您在测试中出错。尝试因为我在URL
/MyAddRowAction
/MyEditRowAction
下没有和服务器组件,所以会看到错误。然而,使用Fiddler、Firebug、开发人员工具等,您可以验证jqGrid在添加新行时是否将数据发布到
/MyAddRowAction
,并将数据发布到编辑的
/MyEditRowAction
。所以我建议的设置确实有效。是的,我已经看过这个演示了。稍后将再试一次。@sleepwalker:您能看到演示使用了不同的URL进行添加和编辑操作吗?我的示例在这里提供:在任何情况下-添加或删除,始终只调用编辑方法。我做错了什么?@梦游者:你的错误很简单:看我答案的“更新”部分。