Настройка выбора ListGrid в SmartGWT

Я пытаюсь установить выбранные записи объекта таблицы ListGrid в SmartGWT, но не могу найти способ сделать это. Я знаю, что есть функция getSelectedRecords(), но нет подходящей функции setSelectedRecords(). Я пытался проверить, будет ли работать set/getSelectedState(), но GWT жалуется на необходимость первичного ключа и объекта DataSource. Есть ли способ установить выбор ListGrid?


person therin    schedule 06.03.2011    source источник


Ответы (1)


Для этого вы можете использовать один из selectRecords(), например:

public void onModuleLoad() 
{
    VLayout main = new VLayout();
    final ListGrid grid = new ListGrid();
    grid.setHeight(500);
    grid.setWidth(400);
    grid.setFields(new ListGridField("name", "Name"));
    grid.setData(createRecords());

    final IButton button = new IButton("Select some");  
    button.addClickHandler(new ClickHandler() {  
        public void onClick(ClickEvent event) 
        {  
          grid.selectRecords(new int[]{2, 3}); //This will select index 2 and 3
        }  
    });  

    main.addMember(grid);
    main.addMember(button);
    RootPanel.get().add(main);
}

private ListGridRecord[] createRecords() 
{
    return new ListGridRecord[]{
      createRecord("monkey"),
      createRecord("banana"),
      createRecord("orange"),
      createRecord("sun")
    };
}

private ListGridRecord createRecord(String name) 
{
    ListGridRecord record = new ListGridRecord();
    record.setAttribute("name", name);
    return record;
}
person Mia Clarke    schedule 06.03.2011
comment
Фу. Почему мне кажется, что они скрывают функции от меня? Спасибо. - person therin; 07.03.2011
comment
@therin Мне знакомо это чувство, эти интерфейсы действительно раздуты и непоследовательны. Рад, что смог помочь. - person Mia Clarke; 07.03.2011