I am using inplace editing on a RadGrid that is built using a class
file. Everything is working well except I am having an issue the
SelectedIndexChanged event not firing when the grid is in edit mode. Any
thoughts?
Column Definition:
UserControl Code:
Column Definition:
GridDropDownColumn _ID = new GridDropDownColumn { DataField = "ID", HeaderText = "ID", UniqueName = "ID", ListTextField = "ID", ListValueField = "ID", ListDataMember = "ID", DropDownControlType = GridDropDownColumnControlType.RadComboBox, HeaderStyle = { Width = Unit.Pixel(140) }, ItemStyle = { Width = Unit.Pixel(140) }, ReadOnly = false, Display = true, };_reinsurerRadGrid.MasterTableView.Columns.Add(_ID);UserControl Code:
private void RadGrid_ItemCreated(object sender, GridItemEventArgs e){ if (e.Item is GridEditableItem && e.Item.IsInEditMode) { try { if ((e.Item as GridDataItem) == null) { return; } ((RadNumericTextBox) (e.Item as GridDataItem)["Percentage"].Controls[0]).Width = Unit.Pixel(75); ((TextBox) (e.Item as GridDataItem)["Code"].Controls[0]).Width = Unit.Pixel(75); RadComboBox _participantList = (e.Item as GridEditableItem)["ID"].Controls[0] as RadComboBox; if (null == _participantList) { return; } _participantList.Width = Unit.Pixel(120); _participantList.DataValueField = "ID"; _participantList.DataTextField = "ID"; _participantList.AutoPostBack = true; _participantList.DataSource = MAASBaseInterface.ParticipantAPI.GetParticipants(); _participantList.DataBind(); _participantList.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(_participantList_SelectedIndexChanged); if (!(e.Item.DataItem is GridInsertionObject)) _participantList.SelectedValue = ((Participant) (e.Item.DataItem)).ID.ToString(); if (e.Item.DataItem is GridInsertionObject) _participantList.EmptyMessage = "-- Select --"; } catch (Exception ex) { string _ex = ex.Message; } }} void _participantList_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e){ //first reference the edited grid item through the NamingContainer attribute GridEditableItem editedItem = (sender as RadComboBox).NamingContainer as GridEditableItem; int _selectedValue = Convert.ToInt32((editedItem["ID"].Controls[0] as RadComboBox).SelectedValue); ParticipantList _participants = MAASBaseInterface.ParticipantAPI.GetParticipants(); Participant _participant = _participants.Where(a => a.ID == _selectedValue) as Participant; RadTextBox _code = editedItem["Code"].Controls[0] as RadTextBox; _code.ReadOnly = false; _code.Text = _participant.Code;}