将数据绑定到kendo下拉列表时如何将ajax响应数据传递给变量?

时间:2013-09-26 06:20:32

标签: c# javascript ajax json kendo-ui

我使用kendo下拉框到我的网页。这是我的java脚本函数。

        function BindNonEventDownList(_propertyId, _url, _textField, _valueField) {
            $(_propertyId).kendoDropDownList({
                optionLabel: '<%= Resources.ResourceiChain.Select %>',
                 dataTextField: _textField,
                 dataValueField: _valueField,
                 dataSource: {
                     type: "json",
                     serverFiltering: true,
                     transport: {
                         read: _url
                     },
                     schema: {
                         data: "Data",
                         total: "Count"

                     }
                 }
             });

        }

这是我的回应。

        {"Data":[],"Count":0}

我想把这个计算变成一个变量。我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以使用数据源的total方法:

var dropdown = $(_propertyId).data("kendoDropDownList");
var count = dropdown.dataSource.total();

但是,请确保在调用total方法时已收到数据。否则它将返回0

答案 1 :(得分:0)

我找到了答案......首先初始化了数据源。然后使用data.length,您可以获得数据的长度..

     function BindNonEventDownList(_propertyId, _url, _textField, _valueField) {

        var dataSource = new kendo.data.DataSource({
               transport: {
                         read: _url
                     },
                     schema: {
                         data: "Data",
                         total: "Count"

                     }
            });

            dataSource.fetch(function(){
              var data = this.data();
              console.log("data:"+data.length);
            });


            $(_propertyId).kendoDropDownList({
                optionLabel: '<%= Resources.ResourceiChain.Select %>',
                 dataTextField: _textField,
                 dataValueField: _valueField,
                 dataSource: dataSource
             });

        }