Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWT单元表分页不工作_Gwt_Celltable_Scroll Paging - Fatal编程技术网

GWT单元表分页不工作

GWT单元表分页不工作,gwt,celltable,scroll-paging,Gwt,Celltable,Scroll Paging,我有下面的代码,它包装了一个单元格表并向其中添加了SimplePage public class CellTableTestClass { private VerticalPanel applicationPanel = new VerticalPanel(); private CellTable<Contact> cellTable = new CellTable<Contact>(); public VerticalPanel createContent() { L

我有下面的代码,它包装了一个单元格表并向其中添加了SimplePage

public class CellTableTestClass {
private VerticalPanel applicationPanel = new VerticalPanel();
private CellTable<Contact>  cellTable = new CellTable<Contact>();
public VerticalPanel createContent() {
List<Contact> list=Arrays.asList(new Contact("John","123 Fourth Road"), new Contact("Mary", "222 Lancer Lane"), new Contact("Zander", "94 Road Street"), new Contact("Harry","303 Shakti"));

cellTable.addColumn(new TextColumn<Contact>() {

            @Override
            public String getValue(Contact object) {
                return object.name;
            }
        }, "Log Name");

        cellTable.addColumn(new TextColumn<Contact>() {

            @Override
            public String getValue(Contact object) {
                return object.address;
            }
        }, "Size");


        // create a pager, giving it a handle to the CellTable
        SimplePager.Resources pagerResources =
                GWT.create(SimplePager.Resources.class);
        SimplePager pager = new SimplePager(TextLocation.CENTER,
                pagerResources, true, 0, true);
        pager.setDisplay(cellTable);
        pager.setPageSize(2);
        cellTable.setRowData(0,list);
        cellTable.setRowCount(list.size());
        // add the Pager to the dialog
        applicationPanel.add(pager);
        applicationPanel.add(new HTML("<hr />"));
        applicationPanel.add(cellTable);
        return applicationPanel;
    }
}
公共类CellTableTestClass{
私有VerticalPanel应用程序面板=新建VerticalPanel();
private CellTable CellTable=新CellTable();
公共垂直面板createContent(){
列表列表=数组。asList(新联系人(“约翰”、“123第四路”)、新联系人(“玛丽”、“222兰瑟巷”)、新联系人(“赞德”、“94路街”)、新联系人(“哈里”、“303沙克蒂”);
cellTable.addColumn(新的TextColumn(){
@凌驾
公共字符串getValue(联系人对象){
返回object.name;
}
},“日志名”);
cellTable.addColumn(新的TextColumn(){
@凌驾
公共字符串getValue(联系人对象){
返回object.address;
}
}“尺寸”);
//创建一个寻呼机,给它一个CellTable的句柄
SimplePager.Resources页面资源=
create(simplePage.Resources.class);
SimplePager寻呼机=新SimplePager(TextLocation.CENTER,
pagerResources,true,0,true);
寻呼机设置显示(手机台);
pager.setPageSize(2);
cellTable.setRowData(0,列表);
cellTable.setRowCount(list.size());
//将寻呼机添加到对话框中
applicationPanel.add(寻呼机);
applicationPanel.add(新的HTML(“
”); applicationPanel.add(cellTable); 返回应用程序面板; } }

当我点击寻呼机的下一步按钮时,它只显示加载屏幕。有人能指出代码中可能的错误吗

因为在使用cellTable时应该使用数据提供程序。如果不想,可以使用cellList而不是cellTable,并使用cellList.setRowData()。

以下是cellTable、SimplePage和ListDataProvider的简单示例

    CellTable<AlarmDisplayBTO> cellTable= new CellTable<AlarmDisplayBTO>();
    TextColumn<AlarmDisplayBTO> dateColumn = new TextColumn<AlarmDisplayBTO>() {
        @Override
        public String getValue(AlarmDisplayBTO object) {
            return object.getDate();
        }
    };
    cellTable.addColumn(dateColumn, "Date");
    TextColumn<AlarmDisplayBTO> alarmNameColumn = new TextColumn<AlarmDisplayBTO>() {
        @Override
        public String getValue(AlarmDisplayBTO object) {
            return object.getAlarmName();
        }
    };
    cellTable.addColumn(alarmNameColumn, "Alarm Name");

    cellTable.setRowCount(alarmList.size());
    // alarmList is an ArrayList<AlarmDisplayBTO> rendered from RPC call
    cellTable.setRowData(0, alarmList); 
    cellTable.setEmptyTableWidget(new Label(" No Records Found"));

    ListDataProvider<AlarmDisplayBTO> dataProvider = new ListDataProvider<AlarmDisplayBTO>();
    dataProvider.addDataDisplay(cellTable);
    dataProvider.setList(alarmList);

    SimplePager pager = new SimplePager();
    pager.setDisplay(cellTable);
    pager.setPageSize(20); // 20 rows will be shown at a time

    VerticalPanel vPanel = new VerticalPanel();
    vPanel.add(cellTable);
    vPanel.add(pager);

    setWidget(new ScrollPanel(vPanel));
CellTable CellTable=new CellTable();
TextColumn dateColumn=新的TextColumn(){
@凌驾
公共字符串getValue(AlarmDisplayBTO对象){
返回object.getDate();
}
};
cellTable.addColumn(dateColumn,日期);
TextColumn alarmNameColumn=新建TextColumn(){
@凌驾
公共字符串getValue(AlarmDisplayBTO对象){
返回object.getAlarmName();
}
};
cellTable.addColumn(alarmNameColumn,“报警名称”);
cellTable.setRowCount(alarmList.size());
//alarmList是从RPC调用呈现的ArrayList
cellTable.setRowData(0,报警列表);
setEmptyTableWidget(新标签(“未找到记录”);
ListDataProvider dataProvider=新ListDataProvider();
dataProvider.addDataDisplay(cellTable);
dataProvider.setList(报警列表);
SimplePager pager=新SimplePager();
寻呼机设置显示(手机台);
pager.setPageSize(20);//一次将显示20行
VerticalPanel vPanel=新的VerticalPanel();
vPanel.add(cellTable);
vPanel.add(寻呼机);
setWidget(新滚动面板(vPanel));

希望这可能会有所帮助。

如果我在联系人列表中使用数据提供程序,也会有同样的效果