Я использую DevExpress ASPxGridView
, содержащий столбец GridViewDataComboBoxColumn
.
Поле со списком корректно работает в режиме редактирования (разрешает фильтрацию в стиле AJAX; оно правильно вставляет, обновляет и удаляет).
Единственная проблема заключается в том, что в режиме отображения вместо TextField
.
отображается
ValueField
(числовой идентификатор).
<dx:GridViewDataComboBoxColumn Width="200px" FieldName="LocationKeyUid" VisibleIndex="0" Caption="Index">
<PropertiesComboBox EnableCallbackMode="true" CallbackPageSize="7" IncrementalFilteringMode="StartsWith"
OnItemsRequestedByFilterCondition="ItemsRequestedByFilterCondition" OnItemRequestedByValue="ItemsRequestedByValue"
TextField="KeyValue" ValueType="System.Int32" TextFormatString="({0}) {1}" ValueField="LocationKeyUid" />
Как показано выше, я пробовал разные эксперименты с настройкой TextFormatString
, но это, похоже, игнорируется.
Я обязуюсь следующим образом:
IList<LocationKeyGridViewModel> locationKeys = GetLocationKeys();
locationKeyGridView.DataSource = locationKeys;
locationKeyGridView.DataBind();
Имена свойств класса (ниже) присваиваются настройкам свойств TextField
и ValueField
(выше).
public class LocationKeyGridViewModel
{
public int LocationKeyUid { get; set; }
public string KeyValue { get; set; }
}
Я попытался изменить присвоение свойства FieldName
на присвоение TextField
(т.е. KeyValue
), но это приводит к ошибке Input string is not in correct format
.
Есть ли здесь что-то очевидное, чего мне не хватает?