textview - hbox - select sapui5
SAPUI5 oTable una fila como enlace, otros como textview (1)
Una solución es que defina la plantilla como HorizontalLayout
. Agregue indicadores de visibilidad adicionales a su modelo de datos existente, por ejemplo, como VisibleFlagForText
y VisibleFlagForLink
( VisibleFlagForText ==! VisibleFlagForLink ).
var oText = new sap.ui.commons.TextView({
text:"{Text01}",
visible : "{VisibleFlagForText}"
});
var oLink = new sap.ui.commons.Link({
text : "{Text01}",
press : pressListOpen,
visible : "{VisibleFlagForLink}"
});
var oLayout = new sap.ui.layout.HorizontalLayout("Layout1",{content: [oText, oLink ]});
oTable.addColumn(new sap.ui.table.Column({
label : new sap.ui.commons.Label({
text : "Berichtsmonat",
hAlign : sap.ui.core.HorizontalAlign.Center,
}),
template : oLayout,
width : ''120px'',
hAlign : sap.ui.core.HorizontalAlign.Center,
}));
Luego puede actualizar los indicadores de visibilidad del modelo de datos de su única fila para establecer el enlace visible o la vista de texto visible.
Actualmente tengo una tabla sapui, donde quiero que una sola fila sea un enlace, todas las demás filas deben ser textviews. mi problema es que la construcción de la tabla se basa en columnas:
oTable.addColumn(new sap.ui.table.Column({
label : new sap.ui.commons.Label({
text : "Berichtsmonat",
hAlign : sap.ui.core.HorizontalAlign.Center,
}),
template : new sap.ui.commons.Link({ // <-- this should only be valid
// for one row, others should be
// new sap.ui.commons.TextView
text : "{Text01}",
press : pressListOpen,
}),
width : ''120px'',
hAlign : sap.ui.core.HorizontalAlign.Center,
}));
más tarde después de definir todas las columnas ..
oTable.bindRows("/GetXYZ");
Entonces, no puedo cambiar esto por una sola línea. ¿Cómo haría esto? ¿Es posible?
Creo que tengo que crear la tabla de otra manera, pero ¿cómo? Estaría muy agradecido con ejemplos de código sobre cómo resolver el problema o cómo construir la tabla correctamente para mi ...