2015-01-11 2 views
0

Я работаю с компонентами Gridview Devexpress, у вас мало проблем с ним. Попробую описать мою проблему.DevExpress Gridview - другой источник данных в столбце в режиме отображения

У меня есть diffedent источник данных для столбца «Формат» в зависимости от столбца Typ, в режиме редактирования его хорошо показать источник хорошие данные

Изображение: http://www.imageshack.cz/images/2015/01/11/obr2.png

Но если я сохранить его и хотите показать выбранный «FORMAT «В режиме отображения я получаю только один источник данных, который был объявлением в столбце« Formát »в init, как здесь, в коде.

Посмотрите на колонке «FORMAT» его плохой переменной, так как в режиме отображения У меня только один DATASOURCE

Изображение: 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; 
      }); 

Exist что-то, где я могу объявить источник данных столбца в режиме отображения, как режим редактирования?

settings.CellEditorInitialize 

ответ

0

Используйте событие 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; 
} 
+0

спасибо, 'CustomColumnDisplayText' помог мне :) –