DevExpress Gridview - 显示模式下列上的不同数据源

DevExpress Gridview - different datasource on column in display mode

我使用 Gridview Devexpress 组件,对它没有什么问题。我试着描述我的问题。

我的列 "Format" 有不同的数据源,具体取决于列 Typ,在编辑模式下它可以显示良好的数据源

图片:http://www.imageshack.cz/images/2015/01/11/obr2.png

但是如果我保存它并希望在显示模式下选择显示 "Formát",我只会得到一个数据源,它是在代码中初始化时在列 "Formát" 上的声明。

在列 "Formát" 上查看它的错误变量,因为在显示模式下我只有一个数据源

图片:http://www.imageshack.cz/images/2015/01/11/obr3.png

settings.Columns.Add(column =>
            {
                column.FieldName = "FormatType";
                column.Caption = Resources.FormatType;

                column.ColumnType = MVCxGridViewColumnType.ComboBox;
                var comboBoxProperties = column.PropertiesEdit as ComboBoxProperties;
                comboBoxProperties.DataSource = WebApp.Helpers.CodebooksHelper.GetItemData(1);
                comboBoxProperties.TextField = "Title";
                comboBoxProperties.ValueField = "ItemID";
                comboBoxProperties.ValueType = typeof(int);
                comboBoxProperties.IncrementalFilteringMode =IncrementalFilteringMode.StartsWith;
                comboBoxProperties.DropDownStyle = DropDownStyle.DropDownList;
            });

存在一些东西,我可以在哪里将显示模式的列上的数据源声明为编辑模式?

 settings.CellEditorInitialize

使用 ASPxGridView.CustomColumnDisplayText 事件。

protected void ASPxGridView2_CustomColumnDisplayText(object sender,
    DevExpress.Web.ASPxGridViewColumnDisplayTextEventArgs e) {
    if (e.Column.FieldName != "FormatType") return;
    e.DisplayText = WebApp.Helpers.CodebooksHelper.GetItemData(1).First(item => item.ItemID == (int)e.Value).Title;
}

settings.CustomColumnDisplayText += (sender, e) => {
        if (e.Column.FieldName != "FormatType") return;
        e.DisplayText = WebApp.Helpers.CodebooksHelper.GetItemData(1).First(item => item.ItemID == (int)e.Value).Title;
}