qooxdoo에 응용 프로그램을 쓰고 있습니다. 행 정보 (이메일 클라이언트에서와 비슷한 인터페이스)에서 사용자가 클릭 한 데이터 및 위젯과 함께 테이블을 반환해야하는 클래스가 있습니다.html 위젯에서 qooxdoo 값이 업데이트되지 않습니다.
그러나 HTML 임베드 위젯의 정보는 변경되지 않은 후로드 할 때 한 번만 초기화됩니다. html 위젯에서 사용자가 클릭 한 행을 표시하기위한 코드를 다시 작성하는 방법은 무엇입니까? 이 내 코드입니다 : 그 내용을 변경할 수있는 richWidget
에 대한
qx.Class.define("bank.InvoiceListBuilder",
{
extend : qx.core.Object,
statics:
{
createList : function(folder) {
var box = new qx.ui.layout.VBox();
box.setSpacing(0);
var container = new qx.ui.container.Composite(box);
container.setPadding(0);
// table construction
var data = new qx.data.Array;
var invoice = new qx.data.Array;
var tableModel = new qx.ui.table.model.Simple();
tableModel.setColumns([ "id", "status", "name", "surname", "date", "email", "amount", "payexp", "description" ]);
var rpc = new qx.io.remote.Rpc(
"http://192.1.1.102/rpc",
"mylist"
);
var handler = function(result, exc) {
if (exc == null)
{
data = qx.lang.Json.parse(result);
tableModel.setData(data);
} else {
alert("Exception during async call: " + exc);
}
};
rpc.callAsync(handler, "listings", folder);
var table = new qx.ui.table.Table(tableModel);
var rowcontent = function(e)
{
var row = table.getFocusedRow();
invoice = tableModel.getRowData(row);
console.log(invoice);
};
table.addListener('cellClick', rowcontent, this);
table.getTableColumnModel().setColumnVisible(1, false);
table.setShowCellFocusIndicator(false);
table.setHeight(300);
container.add(table);
// invoice content view
var rich = new qx.util.StringBuilder();
if (invoice[2] == null)
{
rich.add("<b>Text</b>");
} else {
rich.add("<b>",invoice[2],"</b>");
}
var richWidget = new qx.ui.embed.Html(rich.get());
console.log(rich.get());
console.log(invoice[3]);
richWidget.setOverflow("auto", "auto");
richWidget.setDecorator("main");
richWidget.setBackgroundColor("white");
richWidget.setWidth(200);
richWidget.setHeight(300);
container.add(richWidget);
return(container);
}
}
답변 주셔서 감사합니다! 매력처럼 작동합니다! :) 그리고 Composite에 대한 제안에 감사드립니다. – liberatio
이제 올바른 대답을 수락하면 상황이 훨씬 나아질 것입니다 :-) –