When I use the **** data-bind="source: datasource" **** setting on a ListView within a Mobile View, I end up with all of my data on one long, single list item, instead of separate items. What a I doing wrong? Is this an inappropriate use of data-bind?
If I instead initiate the ListView separately in Javascript then it properly displays the items... though we were trying to pass all of this through MVVM. Is this not the right way to do this?
If I instead initiate the ListView separately in Javascript then it properly displays the items... though we were trying to pass all of this through MVVM. Is this not the right way to do this?
<!DOCTYPE html><html><head> <script src="jquery.min.js" type="text/javascript"></script> <script src="kendo.all.min.js" type="text/javascript"></script> <link href="kendo.mobile.all.min.css" rel="stylesheet" type="text/css" /> <link href="kendo.common.min.css" rel="stylesheet" type="text/css" /> <link href="kendo.default.min.css" rel="stylesheet" type="text/css" /></head><body> <div data-role="view" data-title="Home" id="vHome" data-transition="slide"> <ul data-role="listview" data-style="inset"> <li><a href="#vMyDatabase">This Breaks</a></li> <li><a href="#vMyDatabase2">This Works</a></li> </ul> </div> <div data-role="view" data-title="My Database" id="vMyDatabase"> <ul id="lMyDatabase" data-role="listview" data-style="inset" data-template="tMyDatabase" data-bind="click: ShowCustomer, source: MyDatabase"> </ul> </div> <div data-role="view" data-title="My Database" id="vMyDatabase2" data-init="initTest"> <ul id="lMyDatabase2" data-role="listview" data-style="inset" data-template="tMyDatabase" > </ul> </div> <script id="tMyDatabase" type="text/x-kendo-template"> <div style="font-weight:bold;">#= Name #</div> <div style="font-weight:normal;font-size:smaller">#= City #, #= State #</div> <div style="font-weight:normal;font-size:smaller">ID: #= ID #</div> </script> <script type="text/javascript"> var TestData = [ { Name: "Company A", City: "Phoenix", State: "AZ", ID: "00000001" }, { Name: "Company B", City: "Los Angeles", State: "CA", ID: "00000002" }, { Name: "Company C", City: "Santa Fe", State: "NM", ID: "00000003" }, { Name: "Company D", City: "Boulder", State: "CO", ID: "00000004" }, { Name: "Company E", City: "Seattle", State: "WA", ID: "00000005" }, { Name: "Company F", City: "Portland", State: "OR", ID: "00000006" }, { Name: "Company G", City: "San Diego", State: "CA", ID: "00000007" }, { Name: "Company H", City: "Boise", State: "ID", ID: "00000008" }, ]; var app = new kendo.mobile.Application($(document.body), { initial: "vHome" }); var viewModel = kendo.observable({ ShowCustomer: function(e) { // something here for drilldown }, MyDatabase: new kendo.data.DataSource.create({ data: TestData }) }); kendo.bind($("#vMyDatabase"), viewModel); // And this way works var dsMyDatabase = new kendo.data.DataSource.create({ data: TestData }) function initTest() { $("#lMyDatabase2").kendoMobileListView({ dataSource: dsMyDatabase, template: $("#tMyDatabase").text(), style: "inset", click: function (e) { // something here for drilldown } }); } </script></body></html>