KENDO UI COMBO BOX一个元素的多行

时间:2014-03-13 09:09:07

标签: jquery json combobox kendo-ui

我有一个由ajax调用填充的kendo组合框..问题是当列表只有一个元素时..

如果我在getNifs(JSON)中有这个 “A08000143” “A08000142” 组合框将正确填充..

如果我有:"A08000143"

组合将填充如下:

"A"
"0"
"8"
"0"
"0"

依旧......

这是我的jquery VIEW

             $("#divNIF").kendoComboBox({
                filter: "contains",
                placeholder: "Select Nif...",
                dataBound: onDataBound,
                dataSource: {
                    type: "json",
                    serverFiltering: true,
                    transport: {
                        read: {
                            url: "@Url.Action("GetNifs", "Movimientos")",
                        }
                    }
                }
            });

这是GETNif的功能

    [AcceptVerbs(HttpVerbs.Get)]
    public JsonResult GetNifs()
    {
        List <string> aux_2 = getfromrepository..

        if (cliente.test)
        {
            return Json(aux_2.GetNIFs().First(), JsonRequestBehavior.AllowGet);
        }
        return Json(cliente.NIF, JsonRequestBehavior.AllowGet);
    }

1 个答案:

答案 0 :(得分:0)

问题是返回的值必须是一个数组,尽管它可能需要一个元素。

如果您返回string,那么这会转换为array char,您就可以得到所看到的内容。

如果您无法更改受控返回的内容,则可以在DataSource定义中执行技巧并检查该值是否为string´ convert it to an数组with one single string`。类似的东西:

$("#divNIF").kendoComboBox({
    filter: "contains",
    placeholder: "Select Nif...",
    dataBound: onDataBound,
    dataSource: {
        type: "json",
        serverFiltering: true,
        transport: {
            read: {
                url: "@Url.Action("GetNifs", "Movimientos")",
            }
        },
        schema: {
            parse: function(d) {
                if (typeof d === "string") {
                    return [d];
                } else {
                    return d;
                }
            }
        }
    }
});

我添加了parse函数,检查收到的参数是否为string,如果是,则返回[ ... ]内的原始数据。

检查以下示例中的一种行为与另一种行为之间的区别:http://jsfiddle.net/OnaBai/cQEH9/