C# 如何强制剑道网格在列上使用数字过滤器
使用以下代码,剑道网格对C# 如何强制剑道网格在列上使用数字过滤器,c#,kendo-ui,kendo-grid,kendo-asp.net-mvc,C#,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,使用以下代码,剑道网格对t.Files.Count使用字符串过滤器接口,即使类型是int。如何强制网格使用数字过滤器UI @(Html.Kendo().Grid<GJW_Site.Web.Models.TargetsModel>() .Name("grid") .Columns(columns => { columns.Bound(t => t.ID).Width(80); columns.Bound(t =>
t.Files.Count
使用字符串过滤器接口,即使类型是int
。如何强制网格使用数字过滤器UI
@(Html.Kendo().Grid<GJW_Site.Web.Models.TargetsModel>()
.Name("grid")
.Columns(columns => {
columns.Bound(t => t.ID).Width(80);
columns.Bound(t => t.OrbitalPeriod);
columns.Bound(t => t.Files.Count);
})
.Sortable()
.Filterable()
.DataSource(dataSource => dataSource.Ajax()
.PageSize(20)
.Read(read => read.Action("Targets_Read", "Targets"))
)
.Resizable(o => o.Columns(true))
.ColumnMenu()
)
@(Html.Kendo().Grid())
.名称(“网格”)
.列(列=>{
columns.Bound(t=>t.ID).Width(80);
columns.Bound(t=>t.OrbitalPeriod);
columns.Bound(t=>t.Files.Count);
})
.Sortable()
.可过滤()
.DataSource(DataSource=>DataSource.Ajax()
.页面大小(20)
.Read(Read=>Read.Action(“Targets\u Read”,“Targets”))
)
.可调整大小(o=>o.Columns(true))
.column菜单()
)
为字符串生成筛选菜单:
我使用的是Kendo.MVC 2013.1.514.340解决方案是在模型中指定值为
int
-将数据源
方法更改为:
.DataSource(dataSource => dataSource.Ajax()
.PageSize(20)
.Read(read => read.Action("Targets_Read", "Targets"))
.Model(m => {
m.Field<int>(t => t.Files.Count);
})
)
.DataSource(DataSource=>DataSource.Ajax()
.页面大小(20)
.Read(Read=>Read.Action(“Targets\u Read”,“Targets”))
.Model(m=>{
m、 字段(t=>t.Files.Count);
})
)
您也可以使用此解决方案:
.DataSource(dataSource => dataSource.Ajax()
.PageSize(20)
.Read(read => read.Action("Targets_Read", "Targets"))
.Model(m => {
m.Field("Files.Count", typeof(System.Int32));
})
)
当数据类型为“number”时,我遇到了类似的问题,当过滤器用于数据类型string时,如果在声明模式时存在差异,就会发生这种情况,确保架构中声明的字段正确无误,即与要获取/提供给网格的数据同名。Kendo将能够为每列选择正确的筛选器类型,但您必须使用属性,而不是
TargetsModel
中的字段
例如,使用以下命令:
public class TargetsModel
{
public int ID { get; set; }
public string OrbitalPeriod { get; set; }
...
}
与此相反:
public class TargetsModel
{
public int ID;
public string OrbitalPeriod;
...
}
如果由于某种原因您无法做到这一点,那么
.Model()
方法可能是最好的方法。这正是我想要的