C# 在为空时隐藏剑道网格
本文关键字:网格 隐藏 | 更新日期: 2023-09-27 18:34:48
我的 html 代码中有以下剑道网格,如果没有数据,我试图隐藏它。我对如何做到这一点感到困惑,因为我使用的是数据源而不是遍历某些内容来添加数据。
@(Html.Kendo().Grid<CustomerQuickHistory>()
.Name("TransactionDetails")
.Columns(cols => {
cols.Bound(c => c.DateOfItem).Format("{0:MM/dd/yyyy}");
cols.Bound(c => c.ProductName);
cols.Bound(c => c.Price);
})
.DataSource(ds => ds
.Ajax()
//.Group(g => g.Add(d => d.CustomerName))
.Sort(s => s.Add(ad => ad.DateOfItem).Descending())
.Read(r => r.Action("TransactionHistory_Read", "Customers", new { customerId = Model.CustomerId }))
)
)
如何使用 DataBound 事件处理程序来定义检查绑定的数据源并显示或隐藏网格。
下面是类似内容的示例,但在这种情况下,当网格为空时,它会显示一条消息。
http://blog.falafel.com/displaying-message-kendo-ui-grid-empty/
代码示例:
@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.ProductViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.ProductName).Title("Product Name");
columns.Bound(p => p.UnitPrice).Title("Unit Price");
columns.Bound(p => p.UnitsInStock).Title("Units In Stock");
})
.Events(events => events.DataBound("onGridDataBound"))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("Products_Read", "Grid"))
)
)
<script>
function onGridDataBound(e){
var grid = e.sender;
if (grid.dataSource.total() == 0 ){
//Hide grid
$(grid).hide();
}
else{
//Show grid
$(grid).show();
}
}
</script>