-1

kendo-datasource を作成し、kendo-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>
4

2 に答える 2

1

ハシブさん、すでに上部に剣道データソースを定義しています。検索メソッドで再度作成しないようにしてください。理論的には、ListView を更新するには、データ ソースで read を呼び出す必要があります。

function searchByTitle() {
    shareDataSource.read();

}
于 2012-12-03T12:47:15.387 に答える
-1

データソースを更新する [読み取り]。ただし、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
    });
于 2012-12-03T18:42:58.937 に答える