2012-12-03 61 views
0

我創建了一個kendo-datasource並將其分配給kendo-listview。它的工作很好。但我添加了列表視圖的搜索功能。問題是在搜索後datasoruce更新,但我的列表視圖不反映更改。請幫助我這裏是代碼波紋管。感謝如何將新的kendo數據源綁定到現有的kendo-web-UI listview?

<script type="text/javascript"> 
var shareDataSource; var title = $('#blogTitle').val() || ""; 
shareDataSource = new kendo.data.DataSource({ 
    transport: { 
     read: { 
      url: "api/BlogPosts/?title=" + title 
     } 
    }, 
    pageSize: 15 
}); 

$("#listView").kendoListView({ 
     dataSource: shareDataSource, 
     template: kendo.template($("#template").html()), 
     autoBind: true 
    }); 

function searchByTitle() { 
    var title = $('#blogTitle').val(); 
    shareDataSource = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url: "api/BlogPosts/?title=" + title 

      } 
     }, 
     pageSize: 15 
    }); 
    shareDataSource.read(); 

}</script>  
<div> 

     <input type="text" id="blogTitle" size="5" /> 
     <input type="button" value="Search" onclick="searchByTitle();" /> 

</div> <div id="listView"></div> 

<script type="text/x-kendo-tmpl" id="template"> 
     <div class="post"> 
      <div class="post-meta"> 
       <h2 class="post-title"> <a title="" rel="bookmark" href="">${Title}</a></h2> 
       <hr/> 
       <p class="post-metadata">November 29, 2012 in <a rel="category tag" title="View all posts in .net" href="">.net</a>, 
       <a rel="category tag" title="View all posts in SQL Server R2" href="">SQL Server R2</a> | Tags: <a rel="tag" href="">software</a>, 
       <a rel="tag" href="">technology</a> | <a title="" href="">Leave a comment</a></p> 
      </div>  <div class="post-content"> ${Content} 
     </div> 
     </div> 

    </script> 

回答

1

Hasib, 你已經在上面定義的劍道數據源,儘量不要在你的搜索方法再重新創建它。理論上更新你的ListView你需要打電話讀你的數據源:

function searchByTitle() { 
    shareDataSource.read(); 

} 
+0

我只是看上地方,爲什麼你去錯了,如果你使用[parametrMap(http://docs.kendoui.c​​om/api/framework/datasource#transportparametermap-function)的搜索字詞傳遞到您的打電話給你應該排序。 – Vojtiik

+0

謝謝Bobby_D_, parametrMap更好。 我有固定shareDatasource這種方式。 var shareDataSource; shareDataSource =新kendo.data.DataSource({ 運輸:{ 讀:{ 網址:函數(){VAR 標題= $( '#BLOGTITLE')VAL()|| 「」; 回報「API ?/相關博客文章/標題=」 +標題;} } }, 每頁:15 }); – Hasib

0

更新數據源[閱讀]。但應該使用parametrMap。 Bobby_D在上面提到。

//--------------------------------------------------------------------------- 
    var shareDataSource; 
     shareDataSource = new kendo.data.DataSource({ 
      transport: { 
       read: { 
        url: function(){ var title = $('#blogTitle').val() || ""; 
         return "api/BlogPosts/?title=" + title;} 
       } 
      }, 
      pageSize: 15 
     }); 

//----------------- better ----------------------------- 
     var shareDataSource; 
    shareDataSource = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url:"api/BlogPosts/",// "api/Blogposts/",// 

       data: { 

        title: function() { return ($('#blogTitle').val() || ""); } // sends the value of the input as the title id 
       } 

    } 
    }, 
    pageSize: 15 
    }); 
相關問題