我有一个由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);
}
答案 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/