happyZZR1400
happyZZR1400

Reputation: 2415

kendo ui grid fails after bound data is refreshed

I'm using knockout-kendo and here is my code: markup:

<body>
<div id="mursi"
     data-bind="kendoGrid:{ dataSource:{data:selectedAsset().RealEstateAssetBlockParcel ,pageSize:3} ,data:selectedAsset().RealEstateAssetBlockParcel, pageable: true,pageSize:5,sortable:true,scrollable:false,selectable:true,columns:[{title:'parcel'},{title:'plot'},{title:'subplot'},{ width:60},{ width:60}] ,rowTemplate: 'rowParcelTmpl', altRowTemplate: 'altParcelTmpl', useKOTemplates: true }"></div>

<button data-bind="replaceSelectedAsset">click me</button>

<script id="rowParcelTmpl" type="text/html">
    <tr>
        <td>
            <div data-bind="text:Block"></div>
        </td>
        <td>
            <div data-bind="text:Plot"></div>
        </td>
        <td>
            <div data-bind="text:SubPlot"></div>
        </td>
        <td>
            <button class="k-button"><span class="update-button"></span></button>
        </td>
        <td>
            <button class="k-button"><span class="remove-button"></span></button>
        </td>
    </tr>
</script>
<script id="altParcelTmpl" type="text/html">
    <tr class="k-alt">
        <td>
            <div data-bind="text:Block"></div>
        </td>
        <td>
            <div data-bind="text:Plot"></div>
        </td>
        <td>
            <div data-bind="text:SubPlot"></div>
        </td>
        <td>
            <button class="k-button"><span class="update-button"></span></button>
        </td>
        ><span class="remove-button"></span></button></td>
    </tr>
</script>
</body>

here is my JS:

var selectedAsset = ko.observable();
//viewmodels
var assetViewModel = function () {
    this.RealEstateAssetBlockParcel = ko.observableArray([]);
};
var asset = new assetViewModel();
asset.RealEstateAssetBlockParcel.push({Block: 1, Plot: 2, SubPlot: 3, Id: 0});
selectedAsset(asset);
var replaceSelectedAsset = function () {
    selectedAsset(asset);
};
ko.applyBindings();

everything is allright until you press the "click me" button, which suppose to select another asset and display its parcels grid, Instead i got following error:"Uncaught TypeError: Cannot call method 'find' of undefined " (which originated in kendo.web.all)

http://jsbin.com/oboxig/3/edit Help will be appreciated Thanks

Upvotes: 1

Views: 536

Answers (1)

OnaBai
OnaBai

Reputation: 40887

What I see in you JSBin is an error in the data-bind of the button.

Could you try:

function replaceSelectedAsset () {
    selectedAsset(asset);
};

and define the button as:

<button onclick="replaceSelectedAsset()">click me</button>

Upvotes: 1

Related Questions