如何在 jQgrid 中添加动态下拉列表值

How to add dynamic dropdown values in jQgrid?

本文关键字:动态 下拉列表 添加 jQgrid      更新时间:2023-09-26

在选择的编辑选项下拉列表中,我们在grid_data实例化后传递一些静态值。在我们选择编辑之前,一切正常。由于数据保持恒定和静态。

所有下拉列表保持不变。但这不应该发生,它必须将适当的数据加载到应该是动态的行中。

var data = {
        "id" : "cityGrid",
        "grid_data" : response,
        "colNames" : ['City Name','Select State','local'],
        "colModel": [       
            {"name":'cityName',"index":'cityName', "width":150,"editable": true,"editoptions":{"size":"20","maxlength":"30"}},
            {"name":'selectState',"index":'selectState',"width":90,"editable": true,"edittype":"select","editoptions":{"value":"TN:Tamilnadu;AP:Andhrapradesh;MP:MAdhyapradesh",
    "class":"chosen-select","width":200,"custom":true,"custom_func":util.applyChosen}},
            {"name":'local',"index":'local', "width":70, "editable": true,"edittype":"checkbox","editoptions": {"value":"Yes:No"},"unformat": "aceSwitch"}
        ],
        "editurl": "/dummy.html",
        "caption": "City Information"       
    };
"

editoptions":{"value":"TN:Tamilnadu;AP:安德拉普拉德什;议员:马迪亚普拉德什"

我还遇到了在几个搜索结果后通过的 dataUrl。但这不符合标准,因为我需要发送一个参数,这在那里是不可能的。

甚至想到获取一个特定行数据的值并使其在顶部选择并加载静态的其余部分,因为我使用在按键时触发的所选数据形式,我的问题将得到解决。这里的问题是使用两种类型进行编辑,一种是单行和多行。

这是我被击中的一个阶段。有没有人解决这个问题。任何新版本的jQgrid都有这个问题的答案吗?

提前致谢

首先,您可以动态生成dataUrl。最简单的方法是将dataUrl定义为回调函数:dataUrl: function (rowid, value, name) { ... }

另一方面,您似乎需要使用<option>生成选择,其中value与显示的文本不同<option value="TN">Tamilnadu</option> .在这种情况下,TN值将在编辑后保存在列中,因此您可能应该用TNAPMP等数据保存(以填充)相应的列,而不是TamilnaduAndhrapradeshMAdhyapradesh。您应该使用formatter: "select"(请参阅此处)来显示输入值TNAPMP,如TamilnaduAndhrapradeshMAdhyapradesh。格式化程序formatter: "select"使用formatoptions.value或(未定义)editoptions.value值。因此,在创建网格内容之前,必须在创建网格内容之前设置editoptions.value(或formatoptions.value或两者),因此在jqGrid处理服务器响应之前

为了能够动态设置editoptions.value可以使用setColProp方法。如果从服务器加载数据,则可以在服务器响应中包含所有列属性,但name属性除外。例如,可以在beforeProcessing回调中执行此操作。这个答案和这个答案详细描述了方法。答案显示了如何使用公共列name属性("c1"、"c2"、"c2")并使用jsonmap来读取相对常见的命名数据。如果需要,可以设置jsonmap而不是name属性。