gwt - celltable - 增加额外的行 [英] gwt - celltable - adding extra row

查看:101
本文介绍了gwt - celltable - 增加额外的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在这里输入代码我有一个celltable和列包含一些数字。我想在表格的最后添加一行,它将保存每列的总数。有没有办法做到这一点?



以下是我的代码:

  import java.util。*; 

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.view.client.ListDataProvider;

public class TestProject实现入口点
{

private static int totalSalary = 0;
私人静态类联系
{
private final String salary;
private final String name;

public Contact(String name,String salary)
{
this.name = name;
this.salary =薪水;
}
}

private static List< Contact> CONTACTS = Arrays.asList(新联系人(John,100000),
新联系人(Mary,200000),
新联系人(Zander,300000)) ;
/ **
*这是入口点方法。
* /
public void onModuleLoad()
{
final CellTable< Contact> table = new CellTable< Contact>();

//创建名称列。
TextColumn<联络人> nameColumn = new TextColumn< Contact>()
{
@Override
public String getValue(Contact contact)
{
return contact.name;
}
};

//创建地址栏。
TextColumn<联络人> addressColumn = new TextColumn< Contact>()
{
@Override
public String getValue(Contact contact)
{
totalSalary + = Integer.parseInt(contact.salary) ;
返回contact.salary;
}
};

//添加列。
table.addColumn(nameColumn,Name);
table.addColumn(addressColumn,Salary);

//创建一个数据提供者。
ListDataProvider<联络人> dataProvider = new ListDataProvider< Contact>();

//将表格连接到数据提供者。
dataProvider.addDataDisplay(table);

//将数据添加到数据提供者,数据提供者会自动将其推送到
//小部件。
最终列表<联系人> list = dataProvider.getList();
(联系方式:联系人){
list.add(contact);
}

//我们知道数据默认按字母顺序排序。
table.getColumnSortList()。push(nameColumn);

联系总数=新联系人(Total:,totalSalary +);
list.add(total);



//将其添加到根面板。
RootPanel.get()。add(table);
//RootPanel.get().add(add);
}

}

解决方案

另外,我建议您在添加列时使用页脚参数:
addColumn(Column col,Header header)

enter code hereI have a celltable and the columns contains some numbers. I want to add an extra row at the end of the table which will hold the total for each column. Is there any way to do this?

Following is my code:

   import java.util.*;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.view.client.ListDataProvider;

public class TestProject implements EntryPoint 
{

 private static int totalSalary=0;
 private static class Contact 
 {
        private final String salary;
        private final String name;

        public Contact(String name, String salary) 
        {
          this.name = name;
          this.salary = salary;
        }
 }

private static List<Contact> CONTACTS = Arrays.asList(new Contact("John","100000"), 
                                                      new Contact("Mary", "200000"), 
                                                      new Contact("Zander", "300000"));
/**
 * This is the entry point method.
 */
public void onModuleLoad() 
{
    final CellTable<Contact> table = new CellTable<Contact>();

    // Create name column.
    TextColumn<Contact> nameColumn = new TextColumn<Contact>() 
    {
      @Override
      public String getValue(Contact contact) 
      {
        return contact.name;
      }
    };

    // Create address column.
    TextColumn<Contact> addressColumn = new TextColumn<Contact>() 
    {
      @Override
      public String getValue(Contact contact) 
      {
        totalSalary+=Integer.parseInt(contact.salary);
        return contact.salary;
      }
    };

    // Add the columns.
    table.addColumn(nameColumn, "Name");
    table.addColumn(addressColumn, "Salary");

    // Create a data provider.
    ListDataProvider<Contact> dataProvider = new ListDataProvider<Contact>();

    // Connect the table to the data provider.
    dataProvider.addDataDisplay(table);

    // Add the data to the data provider, which automatically pushes it to the
    // widget.
    final List<Contact> list = dataProvider.getList();
    for (Contact contact : CONTACTS) {
      list.add(contact);
    }

    // We know that the data is sorted alphabetically by default.
    table.getColumnSortList().push(nameColumn);

    Contact total = new Contact("Total: ",totalSalary+"");
    list.add(total);



    // Add it to the root panel.
    RootPanel.get().add(table);
    //RootPanel.get().add(add);
}

}

解决方案

Also I would suggest that you use the footer-Argument when you add the column: addColumn(Column col, Header header)

这篇关于gwt - celltable - 增加额外的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆