如何将函数的MVC 4数据结果绑定到kendo ui ListView?

时间:2014-03-24 19:21:11

标签: asp.net-mvc-4 kendo-ui kendo-listview

我有一个jsonresult方法的结果,它返回一堆数据,包括一个图像列表。我想使用部分结果(图像列表)作为ListView的数据源。数据从jsonresult方法回来很好。如果我在JS中使用alert(data.TravelerImages [x]),我会得到我期望的结果;但是当我尝试使用data.TravelerImages作为数据源时,我似乎一无所获。

操作顺序如下:

  1. 索引页面加载jasonresult数据填充视图 字段 - 这很有效。
  2. 我检查图像列表是否填充了正确的数据 - 这很有效。
  3. 我使用图像列表作为ListView的数据源 - 这个 不起作用。
  4. 这是我的ListView,注意我最初没有设置数据源,因为直到图像列表从jsonresult方法返回时才能显示:

            <div class="divTraveler_Image">
            @*<img id="TravelerImage" class="Traveler_Image" />*@
            @(Html.Kendo().ListView<DataSourceResult>()
                    .Name("lvTravelerImages")
                    .TagName("divImageListView")
                    .ClientTemplateId("template")
                    .Pageable()
                    .Selectable(selectable => selectable.Mode(ListViewSelectionMode.Multiple))
    
                )
            </div>
    

    这是我尝试绑定到ListView的地方(这发生在jquery方法的成功函数中:

     var lvTravelerImageData = new kendo.data.DataSource({ data: data.TravelerImages });
    
      //alert(data.TravelerImages[0]) // works great
    
      $('#lvTravelerImages').kendoListView({
           dataSource: lvTravelerImageData,
        });
      lvTravelerImageData.read();
    

    除了空的ListView之外,这部分什么都没有显示。任何帮助表示赞赏。非常感谢。

1 个答案:

答案 0 :(得分:1)

您正在第二次初始化ListView而不是获取客户端对象。您应该获得如下对象并使用setDataSource方法。

e.g。

var lvTravelerImageData = new kendo.data.DataSource({ data: data.TravelerImages });

  //alert(data.TravelerImages[0]) // works great

  $('#lvTravelerImages').data("kendoListView").setDataSource(lvTravelerImageData);

  lvTravelerImageData.read();