Javascript jqgrid-如何在内联编辑模式下向存储行的extraparam添加参数
我有一个字符串:Javascript jqgrid-如何在内联编辑模式下向存储行的extraparam添加参数,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,我有一个字符串: var str = "it's a beautiful day"; 我正在将此字符串传递给函数: rowSave(id, str); rowSave() 我想做什么 我想 根据空白分割字符串 字符串中的每个单词(拆分后)都应作为extraparam中的参数传递,以便将其附加到url 我不知道怎么做 根据Oleg的建议(见下文),在我的jqgrid定义的ajaxRowOptions:{cache:false}中添加了 您可以定义类似于以下的函数来构建额外的参数对象: fu
var str = "it's a beautiful day";
我正在将此字符串传递给函数:
rowSave(id, str);
rowSave()
我想做什么
我想
- 根据空白分割字符串
- 字符串中的每个单词(拆分后)都应作为
中的参数传递,以便将其附加到urlextraparam
ajaxRowOptions:{cache:false}
中添加了
您可以定义类似于以下的函数来构建额外的参数对象:
function encodeStr(str){
var s = str.split(' '), i, result = {};
for (i = 0; i < s.length; i++){
result['param' + i] = s[i];
}
return (result);
}
代码可以是关于以下内容的:
var rowSave=函数(id,str){
var strParts=str.split(“”),l=strParts.length,i,obj={},
codeStart='A'.charCodeAt(0);//65
对于(i=0;i
首先,
obj
将被填充为{A:“it's”,B:“A”,C:“beauty”,D:“day”}
,然后它将被用作extraparam
的值extraparam
的格式与postData
的格式相同:您可以将该值作为具有如下属性的对象{property1:'value1',property2:'value2'}。因此,您不仅应该在问题中定义值(“字符串中的每个单词”),而且还应该定义属性的名称。此外,您还写道,这些值应该“附加到url”。仅当您使用HTTP GET时,这些值才会附加到URL,而对于HTTP POST(例如,默认情况下)则不会。此外,您还使用了“URL”:server.aspx
这是一个语法错误。server.aspx
应该被引用,而url
是否被引用并不重要。因此,您应该使用url:'server.aspx'
,url:'server.aspx'
或“url:“server.aspx”
,而不是“url”:server.aspx
@Oleg:我知道extraparam
的格式,我正在使用GET
。我不知道在拆分字符串后如何分配值和不同的属性名。是否有方法编写函数并循环它们,然后分配它们。我尝试过这样做,但不起作用。是的,可以这样做,但是whi更改所需属性的名称。我的意思是,服务器部件需要知道完全相同的名称转换才能读取此名称。名称包括p1
,p2
,p3
,…确定吗?可以使用一个参数,而只发送字符串。可以使用已知参数名称拆分一个参数在服务器上要容易得多。不是吗?参数名可以是“A”、“B”、“C”…实际上需要在客户端完成。因此,它的格式应该是--“A:“it's”,“B:“A”,“C:“Beauty”,“D:“day”
非常好。!这正是我想要的。非常感谢:)感谢您的时间和回复。@SK11:不客气!因为您使用mtype:“GET”
在IE中缓存Ajax请求时可能会遇到问题。所以我建议您使用ajaxRowOptions:{cache:false}
jqGrid的参数。谢谢。我添加了该参数并更新了我的帖子。
$("#myjqgrid").jqGrid({
ajaxRowOptions: {cache: false}
});
function encodeStr(str){
var s = str.split(' '), i, result = {};
for (i = 0; i < s.length; i++){
result['param' + i] = s[i];
}
return (result);
}
"extraparam": encodeStr(str)