FieldName
グリッドがバインドされている DataSource の列またはプロパティの名前である列の がありません。
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