Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将项目添加到kendoDropDownList_Javascript_Jquery_Kendo Ui_Kendo Dropdown - Fatal编程技术网

Javascript 将项目添加到kendoDropDownList

Javascript 将项目添加到kendoDropDownList,javascript,jquery,kendo-ui,kendo-dropdown,Javascript,Jquery,Kendo Ui,Kendo Dropdown,我试图向kendoDropDownList添加一个项目,它似乎添加了选项,但没有设置值和文本。检查“选择”按钮只会添加一个新选项 <option></option> 更新 这是我的数据源模型和建议的requestEnd,但这些值似乎弄乱了 datasource_people = new kendo.data.DataSource({ type: "json", serverFiltering: true, transpo

我试图向kendoDropDownList添加一个项目,它似乎添加了选项,但没有设置值和文本。检查“选择”按钮只会添加一个新选项

 <option></option>
更新

这是我的数据源模型和建议的requestEnd,但这些值似乎弄乱了

datasource_people = new kendo.data.DataSource({
        type: "json",
        serverFiltering: true,
        transport: {
            read: {
                dataType: 'json',
                type: 'GET',
                url: '/restful/people/'
            }
        },
        filter: {
            field: "status",
            operator: "eq",
            value: 1
        },
        schema: {
            data: function(response) {
                return response.data.plaintiffs;
            },
            model: {
                id: "person_id",
                fields: {
                    person_id: {type: "number"},
                    name: { type: "string"}
                }
            },
            errors: "error",
            total: function(response) {
                return response.data.total;
            }
        }
    });
后来

$("#people_list").kendoDropDownList({
                    dataTextField: "text",
                    dataValueField: "value",
                    dataSource: {
                        datasource_people,
                        requestEnd: function (e) {
                            e.response.push({text: "John", value: "John"});
                        }
                    }
                });

在使用加载数据源后,可以将新项添加到数据源中

我已经更新了其他用户的小提琴,向您展示了它的工作原理

使用以下命令:

<input id="nameList" value="1" />
var data = [
    { text: "Joe", value: "Joe" },
    { text: "Joe", value: "Joe"  },
    { text: "Joe", value: "Joe"  }
];

// create DropDownList from input HTML element
$("#nameList").kendoDropDownList({
    dataTextField: "text",
    dataValueField: "value",
    dataSource: data,
    index: 0,         
});

不确定您到底想要什么,但您可以从数据源加载选项,然后在启动dataBound后将更多选项追加到列表中

$("#nameList").kendoDropDownList({
    dataTextField: "text",
    dataValueField: "value",
    dataSource: {
        transport: { 
            read: { 
                dataType: 'json', 
                type: 'GET', 
                url: '/restful/companies' 
            }
        } 
    },
    dataBound:onDataBound
});

<script>
    function onDataBound(e) {
        e.sender.dataSource.add({ "text": "Joe", "value": "Joe" });
    }
</script>

经过一些搜索,这是非常简单的,但这正是我所需要的工作

$("#people_list").getKendoDropDownList().dataSource.insert({
    person_id: "John",
    name: "John"
})

谢谢,但是我应该提到我已经在列表中加载了选项。此方法将清除所有当前选项,而不是附加到列表中。如何随新数据一起调用原始数据源?传输:{read:{dataType:'json',type:'GET',url:'/restful/companys'}}您可以将数据推入新数据,然后再次运行,因此我们使用数据属性初始化下拉列表。我找不到有关DataBound的数据属性的任何信息。我也尝试了这个方法,但似乎不起作用:函数onDataBounde{e.sender.dataSource.add{text:John,value:John};}var dropdownlist=$nameList.datakendoDropDownList;dropdownlist.binddataBound,onDataBound;这似乎是可行的,而且比我需要的行要长,但出于某种原因,所有的值和文本只有在选中时才会显示为“未定义”。奇怪。如果你的回答是向上投票或打分,那就太好了,因为它解决了你的问题。您可以发布另一个带有“未定义”问题的问题。顺便说一句,您的dataTextField和dataValueField字段是错误的。
$("#nameList").kendoDropDownList({
    dataTextField: "text",
    dataValueField: "value",
    dataSource: {
        transport: { 
            read: { 
                dataType: 'json', 
                type: 'GET', 
                url: '/restful/companies' 
            }
        } 
    },
    dataBound:onDataBound
});

<script>
    function onDataBound(e) {
        e.sender.dataSource.add({ "text": "Joe", "value": "Joe" });
    }
</script>
$("#people_list").getKendoDropDownList().dataSource.insert({
    person_id: "John",
    name: "John"
})