gpt4 book ai didi

javascript - MVC4 Devexpress 排序、分组和过滤不起作用

转载 作者:行者123 更新时间:2023-12-03 12:34:05 25 4
gpt4 key购买 nike

我正在开发 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,它是网格绑定(bind)到的数据源中的列或属性的名称:

column.FieldName = "Code";

这允许控件知道哪个字段将被过滤和排序。此外,您可能需要允许排序和过滤:

column.Settings.AllowSort = DefaultBoolean.True;  // I think this is the default
column.Settings.AllowHeaderFilter = DefaultBoolean.True;

如果需要定义其他过滤选项,还可以在网格设置中设置HeaderFilterFillItems方法,并在事件args参数处修改Values集合:

gridSettings.HeaderFilterFillItems = (sender, e) =>
{
if (e.Column.FieldName.Equals("Code")) {
e.Values.Clear();
e.AddValue("DisplayOption", "Value", "Query");
// ...
}
};

UPDATE:如果你的列有自定义数据,那么它是未绑定(bind)的,你可以使用事件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;
}
};

您可以在此链接中找到未绑定(bind)数据的示例:https://www.devexpress.com/Support/Center/Example/Details/E2824

关于javascript - MVC4 Devexpress 排序、分组和过滤不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23806660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com