私はGXTを初めて使用し、3.0.1バージョンでこれを実行しようとしています。
ショーケースの例に基づいて編集可能なグリッドがあります。通常のHTMLと同じように表示する値とIDを処理する必要があり、その方法が見つからなかったため、 SimpleComboBoxを使用する列のコードを変更しました。SimpleComboBoxを使用します。
現在、 ComboBoxCellとComboBoxを使用してこれを実現していますが、2つの問題があります。
第1号
テーブルが表示されているとき、コンボ列はインライン編集列のようには表示されません(例のように)。列を作成するためのコードは次のとおりです(ObjectDTOにはid属性とvalue属性のみがあります)
public class MyGrid implements IsWidget {
private GridEditing<MyGridDTO> columnEditing;
//another variables needed to create and handle the grid
public MyGrid(){
List<ColumnConfig<MyGridDTO, ?>> listColumns = new ArrayList<ColumnConfig<MyGridDTO, ?>>();
sm.setSelectionMode(SelectionMode.SINGLE);
//...
ColumnConfig<MyGridDTO, ObjectDTO> colsomeProperty = new ColumnConfig<MyGridDTO, ObjectDTO>(
properties.someProperty(),170,cons.gbsomePropertyTitle());
//...
ComboBoxCell<ObjectDTO> somePropertyCell = new ComboBoxCell<ObjectDTO>(somePropertysStore,new LabelProvider<ObjectDTO>() {
public String getLabel(ObjectDTO item) {
return item.getDescripcion();
}
});
listColumns.add(colSomeProperty);
colSomeProperty.setCell(somePropertyCell);
final ComboBox<ObjectDTO> combo = new ComboBox<ObjectDTO>(somePropertyCell);
columnEditing.addEditor(colSomeProperty,combo);
columnEditing.addBeforeStartEditHandler(new BeforeStartEditHandler<MyGridDTO>() {
public void onBeforeStartEdit(BeforeStartEditEvent<MyGridDTO> event) {
//handle whether or not to allow column editing
}
});
}
}
私が第2号に入るまで、それは大したことではありませんでした
第2号
編集しようとしている行に応じて、グリッドの一部の列を読み取り専用にする必要があります。これは、ブール値であり、このオブジェクトを編集できるかどうかを判断するプロパティをMyGridDTOに含めることで作成しました。チグは次のとおりです。comboBox列を編集するときに、gridEditingeventsが発生しない場合、この動作は、ComboBoxがすでに表示されており、インライン編集プロパティの背後に「隠されていない」ためであると思います。つまり、すでに表示されているため、GridEtingは編集イベントを処理することを想定されていません。それは可能ですか?
この時点で、私はこれのためのworkaroudを見つけることができないので、何をすべきかわかりません。これに関する情報が非常に少ないのか、間違った方法で研究を行っているのか(おそらく)、私は確信が持てません。
手がかりはありますか?
PD:私の英語のために私を非難してください。