jQgrid编辑表单下拉列表有额外的报价

时间:2011-07-13 20:32:18

标签: json asp.net-mvc-2 jqgrid jsonresult

我有一个MVC2 EditStatesController:

     public JsonResult GetStates()
     {
         string statesToReturn = GetStates();  // returns "1: Alabama; 2: Alaska; 3:  Arizona; 4: Arkansas"
         return Json(statesToReturn);
     }

这是调用控制器的代码:

//get States
    var listOfStates = $.ajax({
        url:    '/EditStates/GetStates', 
        type: 'POST',
        async: false, 
        success: function(data, result) {
            if (!result) 
                alert('Failure to retrieve States.');
        }
    }).responseText;

下拉列表中包含元素列表,但最后一个元素有额外的“(双引号),因此怀俄明州的最后一个州是怀俄明州。”

我搜索了其他问题,但没有找到类似的问题。你知道为什么会发生这种情况以及如何解决这个问题吗? 谢谢, 珍妮

1 个答案:

答案 0 :(得分:0)

searchoptions可以使用dataUrl,也可以使用buildSelect代替您当前尝试使用的value

jqGrid需要构建如下所示的HTML片段:

<select>
    <option value="1">Alabama</option>
    <option value="2">Alaska</option>
    <option value="3">Arizona</option>
    <option value="4">Arkansas</option>
</select>

因此,您可以直接从控制器的操作提供数据,也可以提供任何其他输出,如JSON输出:

[
    {"id":1, "name":"Alabama"},
    {"id":2, "name":"Alaska"},
    {"id":3, "name":"Arizona"},
    {"id":4, "name":"Arkansas"}
]

并使用buildSelect事件处理程序将JSON数据转换为带有<select>...</select>的HTML片段。有关详细信息,请参阅the answer

如果您选择使用任何特殊字符的方式,例如''',':',';'等等。