クラスファイルを使用して構築されたRadGridでインプレイス編集を使用しています。グリッドが編集モードのときにSelectedIndexChangedイベントが発生しないという問題がある以外は、すべてうまくいっています。何かご意見は?RadComboBox RadGridでインプレース編集を使用するとSelectedIndexChangedイベントが発生しない
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;
}
ありがとう、私はradgridのselectedindexchangedイベントを探していません。 Radcomboboxの選択された索引が変更されたものが必要です。私はそのイベントを発生させる選択ボタンが必要ないことを知っています。私はtelerikがそのデモ用に使用しているサンプルを見ましたが、私が行ったように.aspxページでradcomboboxを定義しました。私は何かを見落としているが、わたしは知らない。 – Tim
@Tim私はあなたが何かを過ぎているとは思わない。私の経験では、radGridとGridViewはイベントモデルに関して同様の方法で動作します。このリンクhttp://forums.asp.net/t/1313185.aspx/1は、いくつかの苦労を詳述しています。もし私があなただったら、私は選択されたインデックスを取り出して、コマンドボタンとonitemcommandイベントを使って作業を行うようにページを再設計しようとします。これらのタイプのグリッドからコマンドを正常に渡したのは、これが唯一の方法です。あなたが探していたものではない場合はごめんなさい –
@Tim実際に私は質問に編集として含めることが可能な解決策をfoudしました –