我有一个Kendo UI网格,其“自动绑定”属性设置为false。我还将“ pageable.alwaysVisible”属性设置为false,以在不需要网格时隐藏其寻呼机。
我遇到的问题是,因为网格在首次加载时未绑定数据,所以“ alwaysVisible”属性不起作用,并且显示了寻呼机。在此阶段,我希望该寻呼机被隐藏,因为没有要分页的数据。
当网格没有数据绑定时,在第一次加载时我还能隐藏寻呼机吗?
答案 0 :(得分:1)
当它不知道尚无数据时,它看起来像是一个网格怪胎。也许您可以首先尝试将“无数据”推入数据源?以下代码段演示了您的问题;取消注释最后一行即可解决问题:
<div id="grid"></div>
<script>
$("#grid").kendoGrid({
columns: [
{ field: "productName" },
{ field: "category" }
],
dataSource: new kendo.data.DataSource(),
pageable: {
pageSize: 5,
alwaysVisible: false
},
autoBind: false,
});
//$("#grid").data("kendoGrid").dataSource.data([]);
</script>
答案 1 :(得分:1)
它看起来似乎不是开箱即用的,但是您可以使用一些CSS来实现。这可能是比我以前的答案更好的方法,从本质上来说,该答案实际上触发了网格自身进行绑定。最初如何隐藏寻呼机,直到最终绑定网格,此时它将接管寻呼机可见性的管理?
for (int i = 0; i < oFieldNames.length; i++) {
oEditText[i] = new EditText(oContext);
final EditText et = oEditText[i];
// code for "Date-related" EditText view:
if (oFieldNames[i].toLowerCase().contains("date") == true) {
et.setFocusable(false);
et.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int day = oCalendar.get(Calendar.DAY_OF_MONTH);
int month = oCalendar.get(Calendar.MONTH);
int year = oCalendar.get(Calendar.YEAR);
datePickerDialog = new DatePickerDialog(oContext, new DatePickerDialog.OnDateSetListener(){
@Override
public void onDateSet(DatePicker datePicker, int iYear, int iMonth, int iDay) {
et.setText(iYear + "/" + (iMonth+1) + "/" + iDay);
}
}, year, month, day); // ERROR here!!!
datePickerDialog.show();
}
});
}
}
答案 2 :(得分:0)
您可以使用以下内容:
dataBound: function(e){
if(e.sender.dataSource.total() <= e.sender.dataSource.pageSize()){
e.sender.pager.element.hide();
} else {
e.sender.pager.element.show();
}
看看这个例子: http://dojo.telerik.com/OhEDo