我希望隐藏某些汇总数据。我分为三个分组:商品,产品类,说明。
所有这三列都在显示汇总数据,但我只想在“描述”分组中显示它。
我一辈子都无法弄清楚如何隐藏其他两个集合(ProductClass,Commodity)。
我觉得隐藏此信息的方式基于on DataBound事件,但是我不确定如何执行它。
这是网格配置:
@(Html.Kendo().Grid<SmartAdminMvc.Models.LotStatus.LotStatusViewModel>()
.Name("grid")
.Events(e =>
{
// e.ExcelExport("excelExport");
e.DataBound("onDataBoundLotStatus");
}).ToolBar(toolbar =>
{
toolbar.Excel();
})
.Excel(excel => excel.FileName("lotStatusExport" + DateTime.Now.ToString() + ".xlsx")
.Filterable(false)
.AllPages(true))
.Pageable(pager => pager.Refresh(true))
.Sortable()
.Filterable(ftb =>
{
ftb.Extra(false);
ftb.Operators(op =>
{
op.ForString(str =>
{
str.Clear().Contains("Contains");
});
});
})
.Scrollable()
.Groupable()
.Filterable()
.Navigatable()
.Resizable(resize => resize.Columns(true))
.HtmlAttributes(new { style = "height:750px;" })
.Columns(columns =>
{
columns.Bound(p => p.INVID).Hidden();
columns.Bound(p => p.PRODUCT_NUMBER).Title("Prod #");
columns.Bound(p => p.DESCRIPTION).Title("Description").Width(140);
columns.Bound(p => p.FullLotNumber).Title("Lot-Sublot");
//columns.Bound(p => p.CaseEquiv).Title("CaseEquiv");
columns.Bound(p => p.BRAND_NAME).Title("Brand");
columns.Bound(p => p.WAREHOUSE).Title("WH").Width(45).Filterable(false);//.Filterable(filterable => filterable.UI("warehouseFilter"))
columns.Bound(p => p.CompanyDesc).Title("Company").Filterable(false); //.Filterable(filterable => filterable.UI("companyFilter"))
columns.Bound(p => p.ReceiveDateFormatted).Format("{0:MM/dd/yyyy}").Width(80).Title("Date");
columns.Bound(p => p.Age).Width(45).Filterable(false);
columns.Bound(p => p.CONDITION).Title("Code").Width(45).Filterable(false);
columns.Bound(p => p.@class).Title("Class").Width(45).Filterable(true);
columns.Bound(p => p.Expected).Title("Expt").Filterable(false).ClientGroupFooterTemplate("#=sum#").ClientTemplate("#= formatExpected(Expected, LOT_NUMBER, SUB_LOT)#");
columns.Bound(p => p.ONHAND).Title("OH").Filterable(false).ClientGroupFooterTemplate("#= sum#");
columns.Bound(p => p.COMMITTED).Title("Cmt").Filterable(false).ClientGroupFooterTemplate("#=sum#").ClientTemplate("#= formatCommitted(COMMITTED, LOT_NUMBER, SUB_LOT)#");
columns.Bound(p => p.Available).Title("Avail").Filterable(false).ClientGroupFooterTemplate("#=sum#");
columns.Bound(p => p.ExpectedDateFormatted).Title("Expt Date").Format("{0:MM/dd/yyyy}");
columns.Bound(p => p.Cost).Title("Cost").Format("{0:c}").Filterable(false);//.ClientGroupFooterTemplate("$#= (data.CostExt.sum/data.CaseEquivOH.sum).toFixed(2) #(EQ)")
columns.Bound(p => p.CostExt).Title("Cost Ext").Format("{0:c}").Filterable(false).ClientGroupFooterTemplate("$#=sum#").ClientFooterTemplate("Totals: $#= formatDecimal(sum) #");
columns.Bound(p => p.BUYER).Width(100).Title("Buyer").Filterable(true); //.Filterable(filterable => filterable.UI("buyerFilter").ClientFooterTemplate("Qty: #= (data.CaseEquiv.sum * data.ONHAND.sum) #")
columns.Bound(p => p.VENDOR).Title("Vendor/Ref#");
columns.Bound(p => p.ORIGIN_CODE).Title("Orgn").Width(45);
columns.Bound(p => p.COMMODITY).Title("Commodity").Filterable(false);
})
.DataSource(dataSource => dataSource
.Ajax()
.Sort(sort =>
{
sort.Add(x => x.Age).Descending();
sort.Add(x => x.ExpectedDateFormatted);
}
)
.Aggregates(aggregates =>
{
aggregates.Add(p => p.ONHAND).Sum();
aggregates.Add(p => p.Available).Sum();
aggregates.Add(p => p.CostExt).Sum();
aggregates.Add(p => p.COMMITTED).Sum();
aggregates.Add(p => p.Expected).Sum();
aggregates.Add(p => p.CaseEquivOH).Sum();
aggregates.Add(p => p.CostPerCaseEQ).Sum();
})
.Group(groups =>
{
groups.Add(p => p.COMMODITY);
groups.Add(p => p.ProductClass);
groups.Add(p => p.DESCRIPTION);
})
.Model(model =>
{
model.Id(p => p.INVID);
model.Field(p => p.PRODUCT_NUMBER).Editable(false);
model.Field(p => p.ORIGIN_CODE).Editable(false);
model.Field(p => p.DESCRIPTION).Editable(false);
model.Field(p => p.PACKAGING).Editable(false);
model.Field(p => p.BRAND_NAME).Editable(false);
model.Field(p => p.VENDOR).Editable(false);
model.Field(p => p.WAREHOUSE).Editable(false);
model.Field(p => p.CompanyDesc).Editable(false);
model.Field(p => p.RECEIVE_DATE_SQL).Editable(false);
model.Field(p => p.BUYER).Editable(false);
model.Field(p => p.FullLotNumber).Editable(false);
model.Field(p => p.Age).Editable(false);
model.Field(p => p.NEW_CONDITION_CODE).Editable(false);
model.Field(p => p.ONHAND).Editable(false);
model.Field(p => p.COMMITTED).Editable(false);
model.Field(p => p.Expected).Editable(false);
model.Field(p => p.CaseEquiv).Editable(false);
model.Field(p => p.ExpectedDateFormatted).Editable(true);
model.Field(p => p.Cost).Editable(true);
model.Field(p => p.CostExt).Editable(true);
model.Field(p => p.COMMODITY).Editable(true);
}).PageSize(100).Read(read => read.Action("AllLots", "LotStatus").Data("lotStatusClientData"))))
这是我的DataBound事件:
function onDataBoundLotStatus() {
var grid = this;
grid.tbody.find('>tr').each(function () {
var dataItem = grid.dataItem(this);
if (dataItem != null && dataItem.Age > 0) {
if (dataItem.Age <= 7 && (dataItem.COMMODITY.trim() !== 'MATERIALS' && dataItem.COMMODITY.trim() !== 'MISC')) {
$(this).addClass('lotStatusGreen');
}
else if (dataItem.Age >= 8 && dataItem.Age <= 20 && (dataItem.COMMODITY.trim() !== 'MATERIALS' && dataItem.COMMODITY.trim() !== 'MISC')) {
$(this).addClass('lotStatusYellow');
}
else if (dataItem.Age >= 21 && dataItem.Age <= 30 && (dataItem.COMMODITY.trim() !== 'MATERIALS' && dataItem.COMMODITY.trim() !== 'MISC')) {
$(this).addClass('lotStatusRed');
}
else if (dataItem.Age >= 31 && dataItem.Age <= 365 && (dataItem.COMMODITY.trim() !== 'MATERIALS' && dataItem.COMMODITY.trim() !== 'MISC')) {
$(this).addClass('lotStatusOlive');
}
else {
$(this).addClass('normal');
}
}
if (dataItem != null && moment(new Date()).isAfter(dataItem.ExpectedDateFormatted) == true && dataItem.Expected > 0 && (dataItem.COMMODITY.trim() == 'MATERIALS' || dataItem.COMMODITY.trim() == 'MISC')) {
$(this).addClass('lotStatusRed');
console.log('red');
}
});
我想通过使每个单独的分组都具有空白汇总来隐藏:
datasource.aggregate.ProductClass([]);
datasrouce.aggregate.Commodity([]);