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

时间:2014-11-27 11:44:00

标签: javascript jquery jqgrid

在selectOptions for select下拉列表中,我们在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" {"值":" TN:塔米尔纳杜; AP:安得拉邦; MP:中央邦"

在搜索结果很少之后,我也遇到了dataUrl。但它没有达到标准,因为我需要发送一个不可能在那里的param。

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

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

提前致谢

1 个答案:

答案 0 :(得分:1)

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

另一方面,您似乎需要使用<option>生成select,其中value 与显示的文本相同:<option value="TN">Tamilnadu</option>。如果值TN将在编辑后保存在列中,那么您应该使用TNAP,{{1}等数据保留(填充)相应列而不是MPTamilnaduAndhrapradesh。您应该使用MAdhyapradesh(请参阅此处)来显示输入值formatter: "select"TNAP,例如MPTamilnadu,{{1} }。格式化程序Andhrapradesh使用MAdhyapradesh或(它未定义)formatter: "select"值。因此,必须能够在创建网格内容之前设置formatoptions.value(或editoptions.value或两者),因此之前服务器响应将由jqGrid处理。

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