在jqGrid上的表单编辑中发布下拉数据时出现问题

时间:2014-04-02 07:14:45

标签: jquery json jqgrid

我一直在尝试寻求帮助并解决在表单编辑时在jqGrid中提交下拉值的问题,但是还没有运气。

我有包含BankId的JSON。我需要在jqGrid中显示BankName,在表单编辑时,我需要将该字段显示为下拉列表中的银行名称。除了BankId之外,我还修改了服务以返回BankName。我在网格中显示BankName。在编辑模式下,我使用dataurl读取BankId和BankName的另一个JSON。我正在使用' buildSelect'为下拉列表构建html格式的字符串,使用" value"设置为BankId和" text"设为BankName。

问题是当用户从dropdwon中选择BankName并提交表单时,提交的JSON具有在JSON的BankName列中传递的BankId值。

例如,一行最初与以下数据绑定:

{"Id":2,"BankId":2, "BankName":"Bank of America", "EmployeeId":2232,"JoiningDate":"2001-12-23T00:00:00","SalaryAmount":30000.0,"Comments":"test"}

当我在下拉列表中更改银行名称并提交表单时,发布的JSON数据如下:

{"Id":2,"BankId":2, "BankName":"3", "EmployeeId":2232,"JoiningDate":"2001-12-23T00:00:00","SalaryAmount":30000.0,"Comments":"test"}

问题是 - 由于下拉选项值设置为BankId,BankId将在BankName列中提交。 我可以将BankName设置为值字段,因此文本字段和值字段都具有BankName设置并且在BankName上提交时已过帐。但是我想在发布到服务器的JSON中提交BankId而不是BankName,但BankId必须在JSON的BankId字段中传递,而不是在BankName中传递。我怎样才能做到这一点?

非常感谢,

Abhilash

1 个答案:

答案 0 :(得分:0)

我通常使用两列进行此类工作...一个用于在BankName中显示,它将显示银行名称,也是不可编辑的。另一个是隐藏的,将出现在添加或编辑中。希望它有帮助

{ name: 'BankName', index: 'BankName', align: 'center', editable: false },
             {
                 name: 'BankId', index: 'BankId', align: 'center', hidden: true, viewable: true, editrules: { edithidden: true },
                 editable: true, stype: 'select',
                 edittype: 'select',
                 editoptions: {
                     dataUrl: url to get bank ids
                     buildSelect: function (data) {
                         var response, s = '<select>', i;
                         response = jQuery.parseJSON(data);
                         if (response && response.length) {
                             $.each(response, function (i) {
                                 s += '<option value="' + this.VALUE+ '">' + this.TEXT + '</option>';
                             });
                         }
                         return s + '</select>';
                     },
                 }

             },
相关问题