Javascript dropdownlist数据源添加创建的js字符串
Javascript dropdownlist数据源添加创建的js字符串,javascript,drop-down-menu,kendo-ui,datasource,Javascript,Drop Down Menu,Kendo Ui,Datasource,$(“#dropdownlist”)。kendoDropDownList({ 数据源:[ {id:1,名称:“Apples”}, {id:2,名字:“橙子”} ], dataTextField:“名称”, dataValueField:“id” }); var-dropdownlist=$(“#dropdownlist”)。数据(“kendoDropDownList”); var jsonStr=“”; 对于(var jx=3;jx
$(“#dropdownlist”)。kendoDropDownList({
数据源:[
{id:1,名称:“Apples”},
{id:2,名字:“橙子”}
],
dataTextField:“名称”,
dataValueField:“id”
});
var-dropdownlist=$(“#dropdownlist”)。数据(“kendoDropDownList”);
var jsonStr=“”;
对于(var jx=3;jx<21;jx++)
{
jsonStr='{'
+“id:”
+jx+
", "
+'姓名:'
+““blaaa_u'+jx+””
+ ' }';
dropdownlist.dataSource.add(jsonStr);
//给我一个“未定义”而不是一个水果(控制台中没有错误)
//console.log(jsonStr);
}
add({id:21,名称:“Strawbeery”});
//工作
为什么我不能在数据源中添加一个自己创建的js字符串?尽管我用var Myresult=JSON.parse(jsonStr)进行了尝试 使用本地数据创建数据源,本地数据是一个对象数组(json格式只能用于绑定到远程数据) 如果要添加json格式的项目,则必须首先解析它们:
<script>
$("#dropdownlist").kendoDropDownList({
dataSource: [
{ id:1, name: "Apples" },
{ id:2, name: "Oranges" }
],
dataTextField: "name",
dataValueField: "id"
});
var dropdownlist = $("#dropdownlist").data("kendoDropDownList");
var jsonStr = "";
for (var jx = 3; jx < 21; jx++)
{
jsonStr = '{ '
+ 'id : '
+ jx +
", "
+ 'name : '
+ '"blaaa_'+jx+ '"'
+ ' }';
dropdownlist.dataSource.add(jsonStr);
// give me an "undefined" not a fruit (no errors in console)
// console.log(jsonStr);
}
dropdownlist.dataSource.add({ id : 21, name : "Strawbeery" });
// works
</script>
见工作示例:
您还可以扩展DataSource小部件,这样它就可以为您实现这一点,但是,我们并不清楚为什么您首先要添加json字符串而不是JS对象。问题在于,您添加的是字符串,而
add
方法需要json对象。因此,要么使用:
var parsedObject = JSON.parse(jsonObject);
dropdownlist.dataSource.add(parsedObject);
或者更容易构建JSON对象,如下所示:
dropdownlist.dataSource.add(JSON.parse(jsonStr));
$(“#dropdownlist”)。kendoDropDownList({
数据源:[
{id:1,名称:“Apples”},
{id:2,名字:“橙子”}
],
dataTextField:“名称”,
dataValueField:“id”
});
var-dropdownlist=$(“#dropdownlist”)。数据(“kendoDropDownList”);
var jsonStr=“”;
对于(var jx=3;jx<21;jx++){
json={
id:jx,
名称:“blaaa”+jx
};
dropdownlist.dataSource.add(json);
}
add({id:21,名称:“Strawbeery”});
<script>
$("#dropdownlist").kendoDropDownList({
dataSource : [
{ id: 1, name: "Apples" },
{ id: 2, name: "Oranges" }
],
dataTextField : "name",
dataValueField: "id"
});
var dropdownlist = $("#dropdownlist").data("kendoDropDownList");
var jsonStr = "";
for (var jx = 3; jx < 21; jx++) {
json = {
id : jx,
name: "blaaa" + jx
};
dropdownlist.dataSource.add(json);
}
dropdownlist.dataSource.add({ id: 21, name: "Strawbeery" });
</script>