gpt4 book ai didi

javascript - 如何使用 jqGrid editoptions 值的函数创建有效的字符串?

转载 作者:行者123 更新时间:2023-12-01 05:33:17 29 4
gpt4 key购买 nike

我尝试使用函数为 editoptions 值生成一个字符串。该字符串应如下所示:'1:Active;2:Inactive;3:Pending;4:Suspished'。如果我尝试将此字符串作为值,则网格上的选择可以正常工作,但是当我使用完全相同的函数生成它时,它不起作用。你能告诉我出了什么问题吗?

jqGrid代码:

{
label:'Status',
name:'status',
editable:true,
edittype: "select",
stype:'select',
formatter:'select',
editoptions: { value: generate}
}

以及函数

function generate(){
var s="";
$.ajax({
type:"GET",
url:"rst/crud/selectStatus",
dataType: "json",
contentType: "application/json",
success: function (data) {
response = $.parseJSON(JSON.stringify(data));

$.each(response, function(i, item) {
s+=response[i].id+":"+response[i].status+";";
});

s = s.substring(0, s.length-1);
// alert(s);
}
});
return s;
}

最佳答案

您当前使用的$.ajax调用将异步执行。在这种情况下,您应该使用 editoptions 的另一个功能:dataUrlbuildSelect。问题只是该功能适用​​于编辑网格,但不适用于您使用的 formatter:'select'。格式化程序将用于填充网格(用于处理服务器响应)。

我在the answer中描述了这种情况的解决方案。只需使用通过“rst/crud/selectStatus”提供的数据来扩展服务器的标准响应(主url)。您可以在 beforeProcessing 中处理数据,并使用 setColProp 来修改 editoptions.value 动态。顺便说一句,您可以根据网格列中的真实数据设置value事件。如果您使用 loadonce: true 场景,该场景尤其实用。我的意思是:您可以从 '1:Active;2:Inactive;3:Pending;4:Suspished' 减少值集,直到真正使用的值列中的某些值。这样的值对于 searchoptions.value 非常实用,但您仍然可以对 editoptions.value 使用完整的允许值。

关于javascript - 如何使用 jqGrid editoptions 值的函数创建有效的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35646426/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com