我正在使用listgrid控件的smartgwt项目。我想要一些动态机制用动态列填充listgrid(列名和列数不能从头开始定义)。这完全是来自db的动态。
如何在不知道字段名称和字段数的情况下填充listgrid。
答案 0 :(得分:0)
我在许多项目中使用过listgrid。据我所知,我不认为在listgrid中添加列是一种动态的方式。但在那些情况下,我已经习惯了循环。
只需从数据库中获取字段数并创建for循环。如果您不知道列的名称,只需使用temp + i作为名称创建它。
最后将所有字段添加到listgrid。即使在添加循环和最大计数值时也是如此。
答案 1 :(得分:0)
如果您有一个ListGrid并且想要动态添加列,则必须重新创建所有其他列并添加新列然后再添加listGrid.setFields。像这样:
List<ListGridField> oldColumns; //here you store the old columns
List<ListGridField> newColumns = new ArrayList<ListGridField>(); //here you store the newColumns
for(ListGridField oldField : oldColumns){
ListGridField newField = new ListGridField(oldField.getName(), oldField.getTitle());
newColumns.add(newField);
}
ListGridField field = new ListGridField(newName, newTittle); //Declare the new one
newColumns .add(field);
oldColumns = newColumns;
listGrid.setFields(newColumns); //and your listGrid is updated.