排序和过滤不适用于与ViewModel实体绑定的列。它与其他列一起正常工作。
网格代码示例:
@(Html.Kendo().Grid<abc.Models.ShippingViewModel>()
.Name("ShippingGrid")
.Columns(c =>
{
c.Bound(m => m.Id).Hidden();
c.Bound(m => m.LocationViewModel)
.ClientTemplate("#=LocationViewModel.LocationName#")
.Title("Pickup Location")
.HeaderHtmlAttributes(new { @title = "Pickup Loactions" });
c.Bound(m => m.UnitsShipped)
.HtmlAttributes(new { style = "text-align:right" })
.HeaderHtmlAttributes(new { title = "Units Shipped", style = "text-align: right" });
型号:
public class InHouseShippingViewModel
{
[ScaffoldColumn(false)]
public int Id { get; set; }
[Required]
[UIHint("ShippingLocationEditor")]
public LocationViewModel LocationViewModel { get; set; }
[Required]
[Display(Name = "Units Shipped")]
[UIHint("ComanexIntegerEditor")]
[DisplayFormat(DataFormatString = GlobalVaribleDeclarations.displayFormatForInteger)]
public int UnitsShipped { get; set; }
}
集线器/控制器代码:
public IEnumerable<ShippingViewModel> Shipping_Read()
{
var queryResult = ShippingRepository.Shipping_Read();
return queryResult;
}
这里排序在“UnitShipped”列上正常工作,而它不在“LocationViewModel”列上工作。如果我使用c.Bound(m =&gt; m.LocationViewModel.LocationName),则排序&amp;过滤工作正常但是在编辑记录时我无法获得此列的DropDownEditor。我在这里使用“InLine”编辑。
我用“PopUp”编辑测试了这一点,一切正常。我想通过“InLine”编辑实现这一点。
请告知我应该怎么做才能实现“内联”编辑,包括级联下拉列表和排序。谢谢!
答案 0 :(得分:0)
有许多事情可做。首先是过滤等,你需要像普通的ajax调用那样使用datasourcerequest参数,但是你会发现排序不起作用。
public DataSourceResult Read(MyDataSourceRequest request)
{
}
这不起作用,因为剑道常规使用&#39;排序&#39;为了传递一个排序集合,这个集合由signalr数据源传递为&#39; sort&#39; (没有)。您将不得不使用动态linq nuget包,该包具有可与信号器一起使用的自定义数据源请求。请在解决方案中复制他们的代码,以获取自定义datarequest对象和稍微todatasourceresult语法。
中继信息需要在datasourceresult中包装
Clients.Others.update(WrapInDataSourceResult(item));
public DataSourceResult WrapInDataSourceResult(EmployeeViewModel item)
{
return new DataSourceResult
{
Data = new[]
{
item
}
};
}
您还需要激活服务器端选项serverpaging(true)等
.SignalR()
.AutoSync(true)
.Sort(c => c.Add(e => e.FullName).Ascending())
.ServerAggregates(true)
.ServerPaging(true)
.ServerSorting(true)
.ServerGrouping(true)
并在架构中
.Schema(schema => schema
.Data("Data")
.Total("Total")
.Aggregates("Aggregates")
.Groups("Groups")
.Model(model =>
{
model.Id(m => m.EmployeeId);
})