2013-12-21 39 views
0

我在使用按钮更新Kendo Listview时遇到问题。
SubTasks_Read函数在后面的代码中调用,并从wcf返回数据,但是当我绑定它时,listview不会改变。 请帮忙!!Kendo Listvew不能更新/刷新

这里是我的代码:

<div class="subtasks-div"> 
    <div class="section-header"> 
     <p>Subtasks</p> 
    </div> 
    @(Html.Kendo().ListView<Origin.Web.AdminProxy.SubTask>(Model.SubTaskList) 
     .Name("subtask-listView") 
     .TagName("div") 
     .ClientTemplateId("subtask-template") 
     .DataSource(dataSource => 
     { 
      dataSource.Read(read => read.Action("SubTasks_Read", "WorkFlow")); 
      dataSource.PageSize(15); 
     }) 
     .Selectable(selectable => selectable.Mode(ListViewSelectionMode.Single)) 
    ) 
</div> 

<script> 
$(function() { 
    $("#refresh-button") 
    .button() 
    .click(function (event) { 

     var subTaskDataSource = new kendo.data.DataSource({ 
      transport: { 
       read: { 
        type: "GET", 
        url: "../WorkFlow/SubTasks_Read/?taskId=2", 
        dataType: "jsonp" 
       }, 

      }, 

      schema: { 
       model: { 
        fields: { 
         subTaskId: { type: "number" }, 
         taskId: { type: "number" }, 
         subTaskName: { type: "string" }, 
         subTaskOrder: { type: "number" } 
        } 
       } 
      } 
     }); 


     $("#subtask-listView").kendoListView({ 
      dataSource: subTaskDataSource 
     }); 

    }); 
}); 

回答

0

您的代码有几个问题:

  1. 它创建了一个JSONP数据源,而你的操作方法可能返回JSON(是有区别的)。
  2. 您的代码重新创建不需要的ListView。

我建议只需调用当前列表视图数据源的read方法。

$("#refresh-button") 
.button() 
.click(function (event) { 
    $("#subtask-listView").data("kendoListView").dataSource.read(); 
});