RadComboBox événement SelectedIndexChanged pas de tir lors de l'utilisation directe de l'édition dans un RadGrid
Je suis en place à l'aide de l'édition sur un RadGrid qui est construit à l'aide d'un fichier de classe. Tout fonctionne bien sauf que je vais avoir un problème l'événement SelectedIndexChanged qui ne se déclenche pas lorsque la grille est en mode édition. Toutes les pensées?
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;
}
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'un bouton qui a le
CommandName="Select"
ensemble. Sans que l'événement ne se déclenche pas. Pourrait-il être le problème?Ce lien donne plus de détails
EDIT:
Le problème pourrait être que la liste déroulante dynamique est ajouté à la grille, de sorte que l'événement doit être ajouté à chaque fois que la ligne est lié. Dans mon expérience, la radGrid et le contrôle GridView fonctionne de la même façon à l'égard de l'événement de modèle, de sorte que ce DONC réponse peut vous arranger. Bonne chance - ma première thoughs ont que ce ne pouvait pas être n'est pas, mais il y a peut être un moyen d'avancer
Le problème était que je n'avais que le réglage de la Valeur de la propriété de la RadComboBox et non le Texte de la propriété. Même si la valeur de texte a été affiché dans la RadComboBox dans le mode edit, apparemment, il était de l'affichage de la Valeur de la propriété. Dès qu'elle a été fixée, il a commencé à publier tout comme il était censé le faire.