だから私は、selectedValueをあるドロップダウンボックスから特定の行の別のドロップダウンボックスにコピーするメソッドを作成しました。これは、OnCommandイベントの行のボタンから呼び出されます。
protected void Copy(String From, String To, GridViewRow CurrentRow)
{
DropDownList FromList = (DropDownList)CurrentRow.FindControl(From);
DropDownList ToList = (DropDownList)CurrentRow.FindControl(To);
ToList.SelectedValue = FromList.SelectedValue;
}
これをフッター行で使用すると、すべて正常に機能しますが、行の編集中にこれを呼び出そうとすると、デバッグするとデータが表示されますが、ドロップダウンは表示されません。エラーは発生しません。
プロセスをステップインしました。OnCommandイベントが発生した後、Grids RowEditingイベント(すべてのドロップダウンにデータが入力されます)が再度呼び出されます。だから私の推測では、ドロップダウンを再設定することによって行った変更を一掃するだけだと思います。
RowEditingイベントが再起動するのを防ぐ方法はありますか(それが正しいか間違っているかを証明できるようにするためであっても)?このコピーを他の方法で処理する必要がありますか?