Listview 我怎样才能表现出“我是谁?”;“没有结果”;在剑道移动列表视图中
我有一个新的剑道列表视图,它以无休止的滚动开始,问题是当列表返回NULL时,控制台中会出现一个错误。NULL不是一个对象。问题是,对于其他列表,我让加载程序出现,并且不停止加载,也不允许您执行任何操作。最好的解决办法是不显示结果,但我没有办法显示全部结果。datasource.total()始终显示0。我真的不知道该怎么做了。我希望能得到一些帮助。我将发布我的代码。对不起,我的英语不好Listview 我怎样才能表现出“我是谁?”;“没有结果”;在剑道移动列表视图中,listview,mobile,kendo-ui,kendo-mobile,Listview,Mobile,Kendo Ui,Kendo Mobile,我有一个新的剑道列表视图,它以无休止的滚动开始,问题是当列表返回NULL时,控制台中会出现一个错误。NULL不是一个对象。问题是,对于其他列表,我让加载程序出现,并且不停止加载,也不允许您执行任何操作。最好的解决办法是不显示结果,但我没有办法显示全部结果。datasource.total()始终显示0。我真的不知道该怎么做了。我希望能得到一些帮助。我将发布我的代码。对不起,我的英语不好 function funcion() { var dataSource_seguidores_articulo
function funcion() {
var dataSource_seguidores_articulos = new kendo.data.DataSource({
autoSync: true,
transport: {
read: {
url: "xxxxxxxx",
dataType: "jsonp",
data: {token: xxx, motivo: x}
}
},
schema: {
data: "results",
total: "total"
},
pageSize: 10,
serverPaging: true
});
$("#listview").kendoMobileListView({
dataSource: dataSource_seguidores_articulos,
template: $("#template").text(),
endlessScroll: true
});
}
对于不显示和创建冲突的错误,最好的方法是执行以下操作:
<div data-bind="visible: hasData">
<ul data-role="listview" data-bind="source: data" data-template="list-template"></ul>
</div>
<div data-bind="invisible: hasData">
<span>No Records.</span>
</div>
if(datasource.total()==0)
{
没有结果
}
其他的
{
LISTVIEW的代码
}
PHPAJAXURLAPI返回
jQuery1910311110318871215_1397568743279(({ "results":null, "total": 1})
但数据源总计始终显示为0。提前感谢您可能需要手动替换剑道列表视图内容。我知道,例如,剑道网格没有空的数据模板,所以在databound事件中,我检查tbody的表内容并从那里开始。在您的特定情况下,您可能需要测试ul.km-listview中有多少“li”标记标记项。如果长度为零,您可以插入显示“无可用项”的格式化li项:
我过去处理这个问题的方法是MVVM将我的列表的可见性和“无结果”消息绑定到项目的计数。比如:
<div data-bind="visible: hasData">
<ul data-role="listview" data-bind="source: data" data-template="list-template"></ul>
</div>
<div data-bind="invisible: hasData">
<span>No Records.</span>
</div>
如果您想要一个侵入性较小的解决方案,并且对于所有实例都可以使用通用消息,那么可以使用CSS来处理这个问题
[data-role="listview"]:empty::after {
content: 'No records to show';
}
就我个人而言,我喜欢这样做,因为我不必通过空元素的ID,也不必使用JS来针对每个元素。它也不会改变DOM,这可能会阻止剑道正确运行。当记录可用时,此解决方案将正常更新
更新:此解决方案在IE11中存在问题。文本将出现在一些填充的列表中,并在屏幕因鼠标移动而绘制时立即消失问题是它不起作用。长度总是带来undefined或数字,undefined不允许你做任何事情,total总是带来0。请发布如何在角度剑道中实现这一点。服务器返回
null
结果,但表明存在1
记录,这似乎很奇怪。如果可能,让服务器返回一个空数组,而不是null
。如果DataSource.total()
似乎不起作用,请尝试DataSource.view().length
。
<div data-bind="visible: hasData">
<ul data-role="listview" data-bind="source: data" data-template="list-template"></ul>
</div>
<div data-bind="invisible: hasData">
<span>No Records.</span>
</div>
var ds = kendo.DataSource({...});
ds.bind("change", function () {
vm.set("hasData", ds.total() > 0);
});
var vm = kendo.observable({
hasData: false,
data: ds
});
[data-role="listview"]:empty::after {
content: 'No records to show';
}