Раскрывающийся список RadGrid в режиме вставки / редактирования - PullRequest
2 голосов
/ 22 мая 2011

У меня есть RadGrid, который имеет функцию вставки и редактирования.

Одним из полей является раскрывающийся список.

Мои требования

  • Когда пользователь нажимает «Добавить новый», я хочу иметь возможность изменить некоторые свойства в раскрывающемся списке и заполнить его, когда данные
  • Когда пользователь редактирует строку, мне нужно изменить выбранный индекс выпадающего меню, чтобы показать редактируемые данные и отключить его. Мне как-то нужно обработать одно из событий сетки, определить, находится ли он в режиме вставки / редактирования, а затем использовать FindControl, чтобы получить доступ к моему раскрывающемуся списку.

Я рассмотрел ряд событий, таких как ItemCommand, DataBound, ItemCreated и т. Д., И я просто не могу понять, как получить доступ к моему раскрывающемуся списку? Мне нужно знать, какой объект мне нужно вызвать, чтобы найти управление, чтобы попасть в раскрывающийся список.

Спасибо.

Ответы [ 2 ]

1 голос
/ 30 октября 2015

Вы можете попытаться использовать GridDropDownColumn для создания раскрывающегося столбца внутри сетки, который автоматически заполняет раскрывающийся список в режиме редактирования или вставки. Пример:

<telerik:GridDropDownColumn UniqueName="ParamType" DataField="ParamType" HeaderText="Parameter type" HeaderStyle-HorizontalAlign="Center" DropDownControlType="RadComboBox" ListDataMember="ParamType" ListTextField="ParamType" ListValueField="ParamType">
</telerik:GridDropDownColumn>

И вы можете заполнить данные или доступ к раскрывающемуся окну внутри события ItemDataBound. Пример:

    protected void GvParametersItemDataBound(object sender, GridItemEventArgs e)
    {
                if (e.Item is GridEditableItem && e.Item.IsInEditMode)
                {
                    //bind data to ddl in edit mode
                    GridEditableItem editedItem = e.Item as GridEditableItem;
                    GridEditManager editMan = editedItem.EditManager;
                    GridDropDownListColumnEditor editor = (GridDropDownListColumnEditor)(editMan.GetColumnEditor("DropDownColumnUniqueName"));
                    RadComboBox ddList = editor.ComboBoxControl;
                    ddList.RenderMode = Telerik.Web.UI.RenderMode.Auto;

                    ddList.OnClientSelectedIndexChanged = "OnClientSelectedParamerterIndexChanged";
                    ddList.DataTextField = Constants.DataTextField;
                    ddList.DataValueField = Constants.DataValueField;
                    ddList.DataSource = GetParameterTypes();
                    ddList.DataBind();
                }
    }
1 голос
/ 24 мая 2011

Начните с этого документа и имейте в виду, что для определения операции вставки / обновления можно проверить свойство GridTableView.IsItemInserted и коллекцию EditItems сетки соответственно. Соответствующими событиями для изменения значений элемента или отключения раскрывающегося списка являются ItemDataBound и ItemCreated.

...