Aug 17, 2016, 9:15 PM
Hi Fabricio, Great! Thank you. I am looking forward to hear from you.
Thanks
-susan zhang
Thanks
-susan zhang
Ext.grid.feature.Grouping.override({ ... });
events.GroupChange.Handler = ...
<!DOCTYPE html>
<html>
<head>
<title>Ext.NET 4 MVC Sample</title>
<script>
Ext.grid.feature.Grouping.override({
onGroupMenuItemClick: function (menuItem, e) {
var me = this,
menu = menuItem.parentMenu,
hdr = menu.activeHeader,
grid = this.grid.ownerGrid;
// If there are only two columns - a row select one and a data one
if (grid.lockedGrid.columnManager.getColumns().length === 2) {
grid.unlock(grid.lockedGrid.columnManager.getColumns()[1]);
grid.normalGrid.groupingFeature.onGroupMenuItemClick(menuItem, e);
return false;
}
me.callParent(arguments);
}
});
</script>
</head>
<body>
@Html.X().ResourceManager()
@(Html.X().GridPanel()
.ID("GridPanel1")
.Height(400)
.Frame(true)
.Store(
Html.X().Store()
.Data(new List<object>
{
new { company = "3m Co", price = 71.72, change = 0.02, pctChange = 0.03, lastChange = "9/1 12:00am" },
new { company = "Alcoa Inc", price = 29.01, change = 0.42, pctChange = 1.47, lastChange = "9/1 12:00am" },
new { company = "Altria Group Inc", price = 83.81, change = 0.28, pctChange = 0.34, lastChange = "9/1 12:00am" },
new { company = "American Express Company", price = 52.55, change = 0.01, pctChange = 0.02, lastChange = "9/1 12:00am" },
new { company = "American International Group, Inc.", price = 64.13, change = 0.31, pctChange = 0.49, lastChange = "9/1 12:00am" },
new { company = "AT&T Inc.", price = 31.61, change = -0.48, pctChange = -1.54, lastChange = "9/1 12:00am" }
})
.Model(Html.X().Model()
.Fields(
new ModelField("company"),
new ModelField("price", ModelFieldType.Float),
new ModelField("change", ModelFieldType.Float),
new ModelField("pctChange", ModelFieldType.Float),
new ModelField("lastChange", ModelFieldType.Date, "M/d hh:mmtt")
)
)
)
.ColumnModel(
Html.X().Column().Text("Company").DataIndex("company").Locked(true),
Html.X().Column().Text("Price").DataIndex("price"),
Html.X().Column().Text("Change").DataIndex("change"),
Html.X().Column().Text("pctChange").DataIndex("pctChange"),
Html.X().Column().Text("lastChange").DataIndex("lastchange")
)
.SelectionModel(Html.X().SpreadsheetSelectionModel().RowSelect(true))
.Features(
Html.X().GroupingSummary()
.GroupHeaderTplString("{columnName}: {name} ({[values.rows.length]} {[values.rows.length > 1 ? \"Items\" : \"Item\"]})")
.HideGroupedHeader(true)
.ShowSummaryRow(true)
)
.Listeners(events =>
{
events.GroupChange.Handler = @"if (grouper) {
this.getSelectionModel().setRowSelect(false);
} else {
this.getSelectionModel().setRowSelect(true);
}";
})
)
</body>
</html>
Ext.grid.feature.Grouping.override({ ... })
and events.GroupChange.Handler = ...;
<!DOCTYPE html>
<html>
<head>
<title>Ext.NET 4 MVC Sample</title>
<script>
Ext.grid.feature.Grouping.override({
onGroupMenuItemClick: function (menuItem, e) {
var me = this,
menu = menuItem.parentMenu,
hdr = menu.activeHeader,
grid = this.grid.ownerGrid,
columns = grid.lockedGrid.columnManager.getColumns(),
column;
// If there are only two columns - a row select one and a data one
if (columns.length === 2) {
column = columns[1];
grid.unlock(column);
grid.lockOnGroupChange = column;
grid.normalGrid.groupingFeature.onGroupMenuItemClick(menuItem, e);
return false;
}
me.callParent(arguments);
}
});
</script>
</head>
<body>
@Html.X().ResourceManager()
@(Html.X().GridPanel()
.ID("GridPanel1")
.Height(400)
.Frame(true)
.Store(
Html.X().Store()
.Data(new List<object>
{
new { company = "3m Co", price = 71.72, change = 0.02, pctChange = 0.03, lastChange = "9/1 12:00am" },
new { company = "Alcoa Inc", price = 29.01, change = 0.42, pctChange = 1.47, lastChange = "9/1 12:00am" },
new { company = "Altria Group Inc", price = 83.81, change = 0.28, pctChange = 0.34, lastChange = "9/1 12:00am" },
new { company = "American Express Company", price = 52.55, change = 0.01, pctChange = 0.02, lastChange = "9/1 12:00am" },
new { company = "American International Group, Inc.", price = 64.13, change = 0.31, pctChange = 0.49, lastChange = "9/1 12:00am" },
new { company = "AT&T Inc.", price = 31.61, change = -0.48, pctChange = -1.54, lastChange = "9/1 12:00am" }
})
.Model(Html.X().Model()
.Fields(
new ModelField("company"),
new ModelField("price", ModelFieldType.Float),
new ModelField("change", ModelFieldType.Float),
new ModelField("pctChange", ModelFieldType.Float),
new ModelField("lastChange", ModelFieldType.Date, "M/d hh:mmtt")
)
)
)
.ColumnModel(
Html.X().Column().Text("Company").DataIndex("company").Locked(true),
Html.X().Column().Text("Price").DataIndex("price"),
Html.X().Column().Text("Change").DataIndex("change"),
Html.X().Column().Text("pctChange").DataIndex("pctChange"),
Html.X().Column().Text("lastChange").DataIndex("lastChange")
)
.SelectionModel(Html.X().SpreadsheetSelectionModel().RowSelect(true))
.Features(
Html.X().GroupingSummary()
.GroupHeaderTplString("{columnName}: {name} ({[values.rows.length]} {[values.rows.length > 1 ? \"Items\" : \"Item\"]})")
.HideGroupedHeader(true)
.ShowSummaryRow(true)
)
.Listeners(events =>
{
events.GroupChange.Handler = @"if (grouper) {
this.getSelectionModel().setRowSelect(false);
} else {
this.getSelectionModel().setRowSelect(true);
if (this.lockOnGroupChange) {
this.lock(this.lockOnGroupChange);
delete this.lockOnGroupChange;
}
}";
})
)
</body>
</html>