Satırların bazı hücrelerini düzenlenemez hale getirmek istiyorum. Şimdiye kadar benim çözüm, bir sütun okudum zaman, sadece bir TextCell yapmak, değilse, ben varsayılan olarak CellTextCell, DatePickerCell, vb olabilir.GWT CellTable Hücreler readOnly/disabled/non-editable
Buradaki sorun, bazı satırları salt okunur yapamıyorum ve diğerleri değil. Ya da TÜM OKULLAR VEYA YAZILARIYOR. |
Data1:
Nasıl örnek
TABLO için bu için ne yapabilirim Data2 | Data3
--------------------------------------
readOnly | non-readOnly | readOnly
readOnly | readOnly | olmayan salt okunur
i "salt okunur" o "etkin" ya ben zaten cutom hücreyi oluşturup TextImputCell yerine çalıştı, bir "TextCell"
celda = new TextInputCell();
Column<ObjetoDato, String> columna = new Column<ObjetoDato, String>(celda) {
@Override
public String getValue(ObjetoDato object) {
if(actual.getValorDefault()!=null && object.getValor(actual.getNombreCampo()).isEmpty()){
object.setValor(actual.getNombreCampo(), actual.getValorDefault());
return actual.getValorDefault();
}
return object.getValor(actual.getNombreCampo());
}
};
tabla.agregarColumna(columna, actual.getCaption());
columna.setFieldUpdater(new FieldUpdater<ObjetoDato, String>() {
@Override
public void update(int index, ObjetoDato object, String value) {
object.setValor(actual.getNombreCampo(), value);
new Scripter(object,actual.getComportamiento(),true);
tabla.actualizar();
Sistema.get().getIG().actualizarTotales();
}
});
bunu yapmak, ama olabilir demek yöntemleri asla tetik
celda = new FabriCel();
ve ayrıca
public class FabriCel extends TextInputCell {
private String campo;
public FabriCel(String campo){
this.campo=campo;
}
@Override
public void onBrowserEvent(Context context, Element parent, String value, NativeEvent event, ValueUpdater<String> valueUpdater){
Boolean editable = false;///get it from your model
if(editable != null && !editable){
event.preventDefault();
}else{
super.onBrowserEvent(context, parent, value, event, valueUpdater);
}
}
bu
@Override
public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) {
Boolean editable = false;///get it from your model
if(editable){
Log.log();
sb.appendHtmlConstant("<div contentEditable='false'>" +value+"</div>");
}else{
Log.log("No entra");
super.render(context, value, sb);
}
}
Teşekkürler!
özel hücre oluşturmak zorunda . ve "EditTextCell" doğrudan örneğini koymak yerine, bazı kod koydunuz özel cell.can eklemek zorunda? – iMBMT
Bazı kodları ekledim, hiç tetiklemez. – fguespe
Eğer yanılmıyorsam, kod yazarken ihtiyacım bununla eşleşiyor. Neden EditTextCell yerine 'TextInputCell' kullanıyorsunuz?anlamıyorum ki. ne zaman "onBrowserEvent"/"render" i çağırmak istersiniz? hata ayıklama modunda çalıştırın ve hata ayıklama noktası ile kontrol edin! – iMBMT