应用分组时不同 Kendo 网格数据源
Different Kendo grid Datasource when grouping applied
我有一个 Kendo 网格,具有以下减速:
@(Html.Kendo().Grid<AgencyAutomation.DomainLayer.ViewModels.InvoiceDetailViewModel>()
.Name("invoiceDetailGrid")
.BindTo((IEnumerable<AgencyAutomation.DomainLayer.ViewModels.InvoiceDetailViewModel>)@ViewBag.InvoiceDetails)
.Columns(columns =>
{
//
columns.Bound(p => p.AccountId).Hidden();
columns.Bound(p => p.StakeHolderId).Hidden();
columns.Bound(p => p.CommissionTypeId).Hidden();
columns.Bound(p => p.BillDescription).Hidden();
columns.Bound(p => p.GroupNo).Hidden().ClientGroupHeaderTemplate("<span style='float:right'><button id='btnGroupEdit' onclick='ShowGroupEdit(#=value#)' class='btn btn-primary round_blue'><i class='fa fa-edit'></i> Edit</button></span>");
columns.Bound(p => p.StakeHolderDesc).Filterable(true).Sortable(true).Title("Stakeholder").Groupable(true);
columns.Bound(p => p.StakeholderName).Filterable(true).Sortable(true).Title("Stakeholder Name");
columns.Bound(p => p.AmountType).Filterable(true).Sortable(true).Title("Amount Type");
columns.Bound(p => p.CommissionTypeDescription).Filterable(true).Sortable(true).Title("Commission Type");
columns.Bound(p => p.CommissionValue).Filterable(true).Sortable(true).Title("Commission Value").ClientTemplate("#if (CommissionValue > 0){#<div>#=CommissionValue#</div>#} else {#<div></div>#}#");
columns.Bound(p => p.PlanCode).Filterable(true).Sortable(true).Title("Plan Code");
columns.Bound(p => p.Amount).Filterable(true).Sortable(true).Title("Amount").Format("{0:c2}").ClientFooterTemplate("").ClientGroupFooterTemplate("<div> $#=sum#</div>").Format("{0:c2}");
columns.Bound(p => p.GroupNo).Hidden();
// columns.Bound(p => p.InvoiceDetailId).ClientTemplate(gridRowIcons).Title("").Filterable(false).Width(90);
})
.Pageable(pageable => pageable.ButtonCount(5).PageSizes(true))
.Filterable()
.Selectable(selectable => selectable
.Mode(GridSelectionMode.Single))
.Navigatable()
.Groupable(p => p.Enabled(false))
.DataSource(dataSource => dataSource
.Ajax()
.Aggregates(aggregates =>
{
aggregates.Add(p => p.Amount).Sum();
})
.Group(groups => groups.Add(p => p.GroupNo))
.Model(model =>
{
model.Id(p => p.InvoiceDetailId);
}))
.Sortable()
.Filterable()
)
基于 'GroupNo' 的分组,我想修改弹出窗口中的特定部分,删除该组的现有行并将其替换为新的 Lineitems。不应用分组,我可以轻松访问数据源并操作数据。但是当我访问应用了分组的网格时,它的数据源长度只有 returns 成员可用的组数 属性 包含应用分组的字段。
我尝试使用以下命令删除分组:grid.dataSource.group([])
或 grid.dataSource.group("")
但它不会更改数据源。
有什么建议吗?我不太注意在 Kendo 网格上进行分组,显然这似乎很难破解
我 运行 遇到了同样的问题,并最终找到了适合我的解决方案。我希望这可以帮助别人。我刚刚结束枚举组并将项目推入一个数组,最终看起来像未分组的数据。
var grid = $("#gridAdminConfig").data("kendoGrid");
var groupedData = grid.dataSource.data();
var data = [];
//enumerate the groups and grab the actual items
for (var i = 0; i < groupedData.length; i++) {
for (var j = 0; j < groupedData[i].items.length; j++) {
data.push(groupedData[i].items[j]);
}
}
我有一个 Kendo 网格,具有以下减速:
@(Html.Kendo().Grid<AgencyAutomation.DomainLayer.ViewModels.InvoiceDetailViewModel>()
.Name("invoiceDetailGrid")
.BindTo((IEnumerable<AgencyAutomation.DomainLayer.ViewModels.InvoiceDetailViewModel>)@ViewBag.InvoiceDetails)
.Columns(columns =>
{
//
columns.Bound(p => p.AccountId).Hidden();
columns.Bound(p => p.StakeHolderId).Hidden();
columns.Bound(p => p.CommissionTypeId).Hidden();
columns.Bound(p => p.BillDescription).Hidden();
columns.Bound(p => p.GroupNo).Hidden().ClientGroupHeaderTemplate("<span style='float:right'><button id='btnGroupEdit' onclick='ShowGroupEdit(#=value#)' class='btn btn-primary round_blue'><i class='fa fa-edit'></i> Edit</button></span>");
columns.Bound(p => p.StakeHolderDesc).Filterable(true).Sortable(true).Title("Stakeholder").Groupable(true);
columns.Bound(p => p.StakeholderName).Filterable(true).Sortable(true).Title("Stakeholder Name");
columns.Bound(p => p.AmountType).Filterable(true).Sortable(true).Title("Amount Type");
columns.Bound(p => p.CommissionTypeDescription).Filterable(true).Sortable(true).Title("Commission Type");
columns.Bound(p => p.CommissionValue).Filterable(true).Sortable(true).Title("Commission Value").ClientTemplate("#if (CommissionValue > 0){#<div>#=CommissionValue#</div>#} else {#<div></div>#}#");
columns.Bound(p => p.PlanCode).Filterable(true).Sortable(true).Title("Plan Code");
columns.Bound(p => p.Amount).Filterable(true).Sortable(true).Title("Amount").Format("{0:c2}").ClientFooterTemplate("").ClientGroupFooterTemplate("<div> $#=sum#</div>").Format("{0:c2}");
columns.Bound(p => p.GroupNo).Hidden();
// columns.Bound(p => p.InvoiceDetailId).ClientTemplate(gridRowIcons).Title("").Filterable(false).Width(90);
})
.Pageable(pageable => pageable.ButtonCount(5).PageSizes(true))
.Filterable()
.Selectable(selectable => selectable
.Mode(GridSelectionMode.Single))
.Navigatable()
.Groupable(p => p.Enabled(false))
.DataSource(dataSource => dataSource
.Ajax()
.Aggregates(aggregates =>
{
aggregates.Add(p => p.Amount).Sum();
})
.Group(groups => groups.Add(p => p.GroupNo))
.Model(model =>
{
model.Id(p => p.InvoiceDetailId);
}))
.Sortable()
.Filterable()
)
基于 'GroupNo' 的分组,我想修改弹出窗口中的特定部分,删除该组的现有行并将其替换为新的 Lineitems。不应用分组,我可以轻松访问数据源并操作数据。但是当我访问应用了分组的网格时,它的数据源长度只有 returns 成员可用的组数 属性 包含应用分组的字段。
我尝试使用以下命令删除分组:grid.dataSource.group([])
或 grid.dataSource.group("")
但它不会更改数据源。
有什么建议吗?我不太注意在 Kendo 网格上进行分组,显然这似乎很难破解
我 运行 遇到了同样的问题,并最终找到了适合我的解决方案。我希望这可以帮助别人。我刚刚结束枚举组并将项目推入一个数组,最终看起来像未分组的数据。
var grid = $("#gridAdminConfig").data("kendoGrid");
var groupedData = grid.dataSource.data();
var data = [];
//enumerate the groups and grab the actual items
for (var i = 0; i < groupedData.length; i++) {
for (var j = 0; j < groupedData[i].items.length; j++) {
data.push(groupedData[i].items[j]);
}
}