2012-01-25 2 views
3

Я просто пытаюсь отобразить некоторые строки в сетке GXT, используя приведенный ниже код. Однако в сетке отображаются только заголовки. Что я здесь делаю неправильно?Не удается заполнить простую сетку GXT локальными данными

public void onModuleLoad() { 

    //MainScreen mainScreen = new MainScreen(); 
    RootPanel rootPanel = RootPanel.get("main_div"); 

    BeanModel u1 = new User("firstname1", "lastname1");  
    BeanModel u2 = new User("firstname2", "lastname2");  

    ListStore<BeanModel> store = new ListStore<BeanModel>(); 
    store.add(u1); 
    store.add(u2); 

    List<ColumnConfig> configList = new ArrayList<ColumnConfig>(); 

    ColumnConfig column1 = new ColumnConfig(); 
    column1.setId("firstname"); 
    column1.setHeader("FirstName"); 
    column1.setWidth(150); 
    configList.add(column1); 

    ColumnConfig column2 = new ColumnConfig(); 
    column2.setId("lastname"); 
    column2.setHeader("LastName"); 
    column2.setWidth(150); 
    configList.add(column2); 

    ColumnModel columnModel = new ColumnModel(configList); 

    Grid<BeanModel> grid = new Grid<BeanModel>(store, columnModel); 
    grid.setBorders(true); 
    grid.setWidth(300); 


    rootPanel.add(grid); 
} 

Объект пользователя, как показано ниже:

public class User extends BeanModel { 

private static final long serialVersionUID = 1L; 

public User(){} 

public User(String firstName, String lastName){ 
    set("firstname", firstName); 
    set("lastname", lastName); 
} 

public String getFirstName() { 
    return get("firstname"); 
} 
public void setFirstName(String firstName) { 
    set("firstname", firstName); 
} 
public String getLastName() { 
    return get("lastName"); 
} 
public void setLastName(String lastName) { 
    set("lastname", lastName); 
} 

}

ОБНОВЛЕНИЕ После того как я удалить заголовки из колонки конфиги данные отображаются! Кто-нибудь знает, в чем проблема?

ответ

2

Я смог правильно отобразить сетку, указав размер сетки.

Grid<BaseModel> grid = new Grid<BaseModel>(listStore, columnModel); 
grid.setSize(600, 300);  
grid.getView().setForceFit(true); //Makes the vertical scrollbar 
1

Почему бы вам не попробовать добавить данные модели после добавления в конфигурациях столбцов.

Добавить данные модели после объявления сетки.

1

Установите высоту сетки или дайте ей родительский элемент с макетом, который будет его размер. Если вы хотите, чтобы сетка, которая растет автоматически, взгляните на сетку autoheight http://www.sencha.com/examples/#autoheightgrid. Причина в том, что это не по умолчанию: вообще вы хотите, чтобы заголовки оставались на месте и позволяли прокручивать контент, вместо того чтобы пропускать всю вещь, прокручивая страницу, когда она становится слишком большой.

Смежные вопросы