0

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

操作顺序如下:

  1. 索引页面使用 jasonresult 数据填充字段加载视图 - 这很有效。
  2. 我检查图像列表是否填充了正确的数据 - 这很有效。
  3. 我使用图像列表作为 ListView 的数据源 - 这不起作用。

这是我的 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 什么都没有显示。任何帮助表示赞赏。谢谢一堆。

4

1 回答 1

1

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

例如

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

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

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

  lvTravelerImageData.read();
于 2014-03-24T20:55:06.607 回答