Your Kendo code is fine. There can only be 2 issues:
Data that is returned by the service is not proper JSON. It should be encoded like this:
[{ "category": "123", "description": "Event for testing purposes", "eventID": "1", "locationID": "1", "name": "Kendo", "picturePath": "https://si0.twimg.com/profile_images/1514396238/KendoUI-Figure.png", "subcategory": "SEIT", "time": "12:00:00" } , { "category": "123", "description": "Event for testing purposes", "eventID": "1", "locationID": "1", "name": "jQuery", "picturePath": "http://dochub.io/images/jquery_logo.png", "subcategory": "SEIT", "time": "12:00:00" }]
your DataSource is initialized insde the function "dataInit" which is not shown anywhere in the code. And the listview is initialized in the data-init event of the view. So I assume the list is initialized before datasource and causing data not to be bound. Fix for this is you can keep your DataSource outside of the dataInit function as shown in this fiddle which works using your code the way you want: http://jsfiddle.net/whizkid747/MPzVu/
var app = new kendo.mobile.Application(document.body); var dataSource = new kendo.data.DataSource({ transport: { read: { //using jsfiddle echo service to simulate JSON endpoint url: "/echo/json/", dataType: "json", type: "POST", data: { // /echo/json/ echoes the JSON which you pass as an argument json: JSON.stringify([ { "category": "123", "description": "Event for testing purposes", "eventID": "1", "locationID": "1", "name": "Kendo", "picturePath": "https://si0.twimg.com/profile_images/1514396238/KendoUI-Figure.png", "subcategory": "SEIT", "time": "12:00:00" } , { "category": "123", "description": "Event for testing purposes", "eventID": "1", "locationID": "1", "name": "jQuery", "picturePath": "http://dochub.io/images/jquery_logo.png", "subcategory": "SEIT", "time": "12:00:00" } ]) } } } }); function loadEventNames(){ $("#eventfeed").kendoMobileListView({ dataSource: dataSource, template: $("#eventNameTemplate").html(), style:'inset' }); }