MVC4 Devexpress排序,分组和过滤不工作
MVC4 Devexpress Sorting, Grouping and Filtering not working
我正在开发devexpress,遇到了一些问题。下面是我的代码:
settings.Columns.Add(column =>
{
column.Caption = "Code";
column.Settings.AllowGroup = DefaultBoolean.True;
column.SetDataItemTemplateContent(c =>
{
ViewContext.Writer.Write(DataBinder.Eval(c.DataItem, "Code"));
});
column.SetEditItemTemplateContent(c =>
{
if (DataBinder.Eval(c.DataItem, "Code") != null)
{
ViewContext.Writer.Write(DataBinder.Eval(c.DataItem, "Code"));
}
else
{
Html.DevExpress().TextBox(textBox =>
{
textBox.Width = Unit.Percentage(100);
textBox.Name = "Code";
}).Render();
}
});
});
我添加这样的列,它显示正确的值,但排序或分组或过滤不工作。我如何使这些功能工作?请帮助! !
您缺少列的FieldName
,这是Grid绑定到的数据源中的列或属性的名称:
column.FieldName = "Code";
允许控件知道将筛选和排序哪个字段。此外,您可能需要允许排序和过滤:
column.Settings.AllowSort = DefaultBoolean.True; // I think this is the default
column.Settings.AllowHeaderFilter = DefaultBoolean.True;
如果需要定义其他过滤选项,还可以在网格设置中设置HeaderFilterFillItems
方法,并在事件参数中修改Values
集合:
gridSettings.HeaderFilterFillItems = (sender, e) =>
{
if (e.Column.FieldName.Equals("Code")) {
e.Values.Clear();
e.AddValue("DisplayOption", "Value", "Query");
// ...
}
};
UPDATE:如果您的列有自定义数据,那么它是未绑定的,并且您可以使用事件CustomColumnUnboundData
来定义列的值,这也将用于过滤/排序网格:
// Same column definition as yours
settings.Columns.Add(column =>
{
column.Caption = "Code";
column.Settings.AllowGroup = DefaultBoolean.True;
column.SetDataItemTemplateContent(c =>
{
ViewContext.Writer.Write(DataBinder.Eval(c.DataItem, "Code"));
});
column.SetEditItemTemplateContent(c =>
{
if (DataBinder.Eval(c.DataItem, "Code") != null)
{
ViewContext.Writer.Write(DataBinder.Eval(c.DataItem, "Code"));
}
else
{
Html.DevExpress().TextBox(textBox =>
{
textBox.Width = Unit.Percentage(100);
textBox.Name = "Code";
}).Render();
}
});
});
// CustomUnboundColumnData event handler
settings.CustomUnboundColumnData = (sender, e) => {
if(e.Column.Caption.Equals("Code")) {
// You can get the value of any existing field in the datasource, this way:
string code= (string)e.GetListSourceFieldValue("Code");
// Do some processs to get the custom value
// ...
// And set it to the Value propery of the event args parameter
e.Value = myCustomValue;
}
};
您可以在此链接中找到未绑定数据的示例:https://www.devexpress.com/Support/Center/Example/Details/E2824
相关文章:
- 有可能过滤来自嵌入式YouTube的声音吗
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- 通过ID工作进行ng重复跟踪,如何在ng重复中过滤
- 节点阵列过滤不工作
- ExtJs组合过滤不能正常工作
- 过滤收集后,后网分页器不工作
- 数据表过滤&行高亮不能一起工作
- 过滤一个geojson层在传单不工作
- 基本的Javascript过滤函数在Angular2中不能正常工作
- 谷歌地图标记类别过滤不工作
- Javascript在数据表过滤或分页之后不工作
- Chrome扩展WebRequest过滤tabId不工作
- Angular通过friends内部的friend.brand.id进行过滤可以工作,但不能使用'undefin
- 如何在不移动过滤功能的情况下将一组过滤后的数据移动到另一个工作表
- AngularJS的过滤在1.5版本中不能正常工作
- 使用javascript过滤Telerik MVC网格不能与自定义绑定一起工作
- MVC4 Devexpress排序,分组和过滤不工作
- coffeescript -数组过滤不工作
- 为什么jQuery's:可见选择器在过滤时工作方式不同