Javascript 如何在kendo listview中更改数据源

Javascript 如何在kendo listview中更改数据源,javascript,html,ajax,listview,kendo-ui,Javascript,Html,Ajax,Listview,Kendo Ui,这是我用来根据日期将远程数据绑定到ListView的方法 function getListData(date) { $.ajax({ type: "POST", url: wcfurl + "getList", data: '{"date":"' + date + '"}', contentType: "application/json; charset=utf-8", dataType: "json",

这是我用来根据日期将远程数据绑定到ListView的方法

function getListData(date) { 

    $.ajax({
        type: "POST",
        url: wcfurl + "getList",
        data: '{"date":"' + date + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processdata: true,
        success: function (data) {
            $.each(data, function (i, item1) {
                listds = item1;                                                
            });                    
            $("#listview").kendoListView({                        
                dataSource: new kendo.data.DataSource({
                    data: JSON.parse(listds)                                      
                }),                        
                template: kendo.template($("#template").html()),
                altTemplate: kendo.template($("#altTemplate").html()),
                selectable: true,
                change: function () {
                    var index = this.select().index(), dataItem = this.dataSource.view()[index];
                    alert("id: " + dataItem.id + ", table: " + dataItem.tableno);
                }
            });                   
        },
        error: function (result) {
            alert("error : " + result);
        }
    }); 
}
通过以下方法,我将日期传递给此
[getListData(日期)]
方法

function initCalander() {
    $.ajax({
        success: function () {
            var today = new Date(),
            events = [+new Date(today.getFullYear(), today.getMonth(), 10),
             +new Date(today.getFullYear(), today.getMonth(), 20)];
            $(".calendar").kendoCalendar({
                value: today,
                dates: events,
                change: function () {
                    var d = kendo.toString(this.value(), 'd');
                    getListData(d);
                }
            });
        }
    });
}
这在开始时效果很好,但是如果我更改列表与当前数据重新绑定的日期,直到现在还可以,问题是,在listview的
change
中,警报消息出现两次,第一次显示旧数据,第二次只显示当前数据

我不知道是什么问题。任何帮助都是非常值得的


谢谢。

您多次初始化ListView,我不推荐这样做

相反,您只能初始化ListView和日历一次—当触发DOM就绪事件时,从那时起,您可以使用数据源的方法,如来设置基础集合。

尝试此操作

 function initCalander() {
        $.ajax({
              ..
              var d = kendo.toString(new Date(result.Value), 'd');
              getListData(d);
              ..
        });
    }

你能创建一个演示吗?@LarsHöppner对不起,朋友,现在我的服务只在locolhost中提供。我现在该怎么办?我是新手,你能再解释一下吗,
我如何初始化它一次并更改数据?