2012-01-25 74 views
2

我希望我的表具有以下靜態列標題:「Name」,「Surname」,「DOB」, 但我想在* .ui.xml中聲明它們(而不是在代碼中)。如何使用UiBinder聲明式設置GWT Flextable第一行(即標題)?

現在,我通過代碼做這樣的:

public PersonViewImpl extends Composite implements PersonView { 
    /*Lots of code removed for clarity*/ 

    @UiField (provided = true) FlexTable personTable; 

    public PersonViewImpl(){ 
     personTable.setText(0, 0, "Name"); 
     personTable.setText(0, 1, "Surname"); 
     personTable.setText(0, 2, "DOB")  
    } 
} 

我有這個在我的PersonView.ui.xml

<g:FlexTable ui:field="personTable" /> 

我GOOGLE了幾個小時,但仍不行。

回答

2

您不能在UI Binder中設置FlexTable的單元格元素,可能應該有您自己的自定義小部件,它可以呈現tr和td。例如,像這裏解釋:GWT table row as UiBinder

1

在聲明provider = true,用戶界面粘結不實例的對象,則需要例如,它在你的java類 正確的代碼是:

public PersonViewImpl(){ 
    // enter code here 
    personTable = new FlexTable(); 
    personTable.setText(0, 0, "Name"); 
    personTable.setText(0, 1, "Surname"); 
    personTable.setText(0, 2, "DOB"); 
} 
0

失蹤initWidget(uiBinder.createAndBindUi(this));構造函數的第一行。

試試這個:

public class PersonViewImpl extends Composite implements PersonView { 
    /*Lots of code removed for clarity*/ 

    @UiField (provided = true) FlexTable personTable; 

    public PersonViewImpl(){ 
     initWidget(uiBinder.createAndBindUi(this)); 
     // TODO your code 
    } 
}