我正在使用kendo UI,我希望按升序日期默认排序我的网格,但无法弄清楚如何修改它。我的理解是它是数据源部分的一部分:
@(Html.Kendo().Grid<CustomerAnimalViewModel>()
.Name(gridId)
.HtmlAttributes(new { @class = "grid" })
.Columns(columns =>
{
columns.Bound(c => c.AnimalId).Visible(false);
columns.Bound(c => c.RegistrationNumber).ClientTemplate("<a class='active' href=javascript:viewAnimal(\"" + "#: AnimalId #" + "\",\"" + "#=escape(Name) #" + "\") >#: RegistrationNumber #</a>");
columns.Bound(c => c.Type);
columns.Bound(c => c.Prefix);
columns.Bound(c => c.Name);
columns.Bound(c => c.DateOfBirth).ClientTemplate("#= kendo.toString(DateOfBirth == null ? '' : DateOfBirth, '" + Constants.DateFormat + "') #");
columns.Bound(c => c.Sex);
columns.Bound(c => c.HMC);
columns.Bound(c => c.Usability).Visible(false);
columns.Bound(c => c.Status);
columns.Command(command => { command.Destroy(); }).Title(Resources.Actions);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(p => p.AnimalId);
model.Field(p => p.RegistrationNumber);
model.Field(p => p.Type);
model.Field(p => p.Prefix);
model.Field(p => p.Name);
model.Field(p => p.Status);
model.Field(p => p.Sex);
model.Field(p => p.HMC);
model.Field(p => p.Usability);
model.Field(p => p.Status);
})
.Read(read => read.Action("ReadTypes", "Customer").Data("filterData"))
.Destroy(destroy => destroy.Action("DeleteAnimal", "Customer"))
)
.Navigatable()
.Sortable()
.Filterable()
.Pageable()
)
答案 0 :(得分:13)
在.Sort(x=>x.Add("DateOfBirth").Ascending())
dataSource
@(Html.Kendo().Grid<CustomerAnimalViewModel>()
.Name(gridId)
.HtmlAttributes(new { @class = "grid" })
.Columns(columns =>
{
columns.Bound(c => c.AnimalId).Visible(false);
columns.Bound(c => c.RegistrationNumber).ClientTemplate("<a class='active' href=javascript:viewAnimal(\"" + "#: AnimalId #" + "\",\"" + "#=escape(Name) #" + "\") >#: RegistrationNumber #</a>");
columns.Bound(c => c.Type);
columns.Bound(c => c.Prefix);
columns.Bound(c => c.Name);
columns.Bound(c => c.DateOfBirth).ClientTemplate("#= kendo.toString(DateOfBirth == null ? '' : DateOfBirth, '" + Constants.DateFormat + "') #");
columns.Bound(c => c.Sex);
columns.Bound(c => c.HMC);
columns.Bound(c => c.Usability).Visible(false);
columns.Bound(c => c.Status);
columns.Command(command => { command.Destroy(); }).Title(Resources.Actions);
})
.DataSource(dataSource => dataSource
.Ajax()
.Sort(x=>x.Add("DateOfBirth").Ascending())
.Model(model =>
{
model.Id(p => p.AnimalId);
model.Field(p => p.RegistrationNumber);
model.Field(p => p.Type);
model.Field(p => p.Prefix);
model.Field(p => p.Name);
model.Field(p => p.Status);
model.Field(p => p.Sex);
model.Field(p => p.HMC);
model.Field(p => p.Usability);
model.Field(p => p.Status);
})
.Read(read => read.Action("ReadTypes", "Customer").Data("filterData"))
.Destroy(destroy => destroy.Action("DeleteAnimal", "Customer"))
)
.Navigatable()
.Sortable()
.Filterable()
.Pageable()
)
答案 1 :(得分:1)
您的数据源是在将其发送到网格之前需要进行排序的。
在“ReadTypes”操作中,您可能会获得CustomerAnimalViewModel列表。您可以使用
将linq查询用于列表.OrderBy(d => d.DateOfBirth)
答案 2 :(得分:1)
单列排序:
@(Html.Kendo().Grid<T>()
.Name("grid")
.DataSource(dataSource => dataSource
.Ajax()
.Sort(x=>x.Add("DateOfBirth").Ascending())
....)
多列排序:
@(Html.Kendo().Grid<T>()
.Name("grid")
.Sortable(sortable => sortable.SortMode(GridSortMode.MultipleColumn))
.DataSource(dataSource => dataSource
.Ajax()
.Sort(s =>
{
s.Add(l => l.F_NAME).Descending();
s.Add(l => l.L_NAME).Descending();
})
....)