如何在CellTable Gwt中设置ButtonCell的样式?
如何在CellTable Gwt中设置ButtonCell的样式 我在互联网上搜索并找到了两个解决方案: -解决方案1:使用如何在CellTable Gwt中设置ButtonCell的样式?,gwt,gwt-celltable,Gwt,Gwt Celltable,如何在CellTable Gwt中设置ButtonCell的样式 我在互联网上搜索并找到了两个解决方案: -解决方案1:使用urColumn.setCellStyleName(“yourStyleName”)() 我试过了,但什么也没发生 -解决方案2:修改ButtonCell() ButtonCell nextStepButton=new ButtonCell(){ //本机button单元格没有gwt button类,因此 //在其他gwt按钮旁边看起来很奇怪。在这里修复。 @凌驾 公共无效
urColumn.setCellStyleName(“yourStyleName”)代码>()
我试过了,但什么也没发生
-解决方案2:修改ButtonCell()
ButtonCell nextStepButton=new ButtonCell(){
//本机button单元格没有gwt button类,因此
//在其他gwt按钮旁边看起来很奇怪。在这里修复。
@凌驾
公共无效渲染(
最后的背景,
最终安全HTML数据,
最终安全性(HTMLBuilder sb){
某人以““””号结尾;
如果(数据!=null){
附加(数据);
}
某人以““””号结尾;
}
};
对于解决方案2,我可以看出区别(即ButtonCell的样式发生了变化)。但是,我没有“gwt-Button
”css类,只有“gwtButton
”css类(请参见上面的css)。然而,当我将第二个代码中的“gwt按钮”更改为“gwtButton”时,sb.appendHtmlConstant(“”)代码>然后什么也没发生
那么,如何设置按钮单元格的样式,使其能够拾取gwtButton css类
如果所发布的代码是您在页面中的代码,则选择器中会出现错误,除非您在复制到问题时出错
- 尝试使用
.buttonCell.gwtButton
更改.buttonCell.getButton
- 或者只需使用
.gwtButton
[已编辑]
好的,我看到了错误,您正在将样式设置为按钮的容器,因此您必须更改选择器。在css资源中使用此选项:
.gwtButton button {
margin: 0;
padding: 5px 7px;
...
}
对我有效的方法是创建一个自定义的Button单元格类(例如,StyledButtonCell),它扩展ButtonCell,并根据我的喜好重写render方法。在下面的示例中,我指定了一个基本的引导按钮样式,还使用了一个附加图标来显示按钮文本
自定义按钮单元类(从基本ButtonCell类派生)的示例代码:
公共类StyledButtonCell扩展了ButtonCell{
/**
*构造一个新的StyledButtonCell,它将使用{@link SimpleSafeHtmlRenderer}。
*/
public StyledButtonCell(){
super(SimpleSafeHtmlRenderer.getInstance());
}
@凌驾
公共void呈现(上下文上下文、安全HTML数据、安全HTMLBuilder sb){
某人以““””号结尾;
某人以““””号结尾;
如果(数据!=null){
附加(数据);
}
某人以““””号结尾;
}
}
定义gwt表/列时对StyledButtonCell的示例引用:
... new Column<XYZClass, String>(new StyledButtonCell()) {
@Override
public String getValue(XYZClass object) {
return "buttonText_goes_here";
}
。。。新列(新StyledButtonCell()){
@凌驾
公共字符串getValue(XYZClass对象){
返回“buttonText\u goes\u here”;
}
Hi Manolo,谢谢你的回答。我尝试了.buttonCell.gwtButton,但什么也没发生。我改为.gwtButton,然后样式应用于整个单元格,而不是单元格内的按钮,这是不正确的。我只希望单元格内的按钮得到“gwtButton”风格。你可以在这里看到错误风格的图片。你能像在开发工具或firebug控制台中看到的那样发布html代码吗?嗨,Manolo,你是指实际的html/Javascript代码吗?这是上面代码()的视图源。如果你指的是其他内容,请告诉我。
ButtonCell nextStepButton=new ButtonCell(){
// A native button cell doesn't have the gwt-button class, which makes it
// look weird next to other gwt buttons. Fix that here.
@Override
public void render(
final Context context,
final SafeHtml data,
final SafeHtmlBuilder sb) {
sb.appendHtmlConstant("<button type=\"button\" class=\"gwt-Button\" tabindex=\"-1\">");
if (data != null) {
sb.append(data);
}
sb.appendHtmlConstant("</button>");
}
};
.gwtButton button {
margin: 0;
padding: 5px 7px;
...
}
public class StyledButtonCell extends ButtonCell{
/**
* Construct a new StyledButtonCell that will use a {@link SimpleSafeHtmlRenderer}.
*/
public StyledButtonCell() {
super(SimpleSafeHtmlRenderer.getInstance());
}
@Override
public void render(Context context, SafeHtml data, SafeHtmlBuilder sb) {
sb.appendHtmlConstant("<button class=\"btn btn-default\" type=\"button\" tabindex=\"-1\">");
sb.appendHtmlConstant("<i class=\"fa fa-refresh\"></i>");
if (data != null) {
sb.append(data);
}
sb.appendHtmlConstant("</button>");
}
... new Column<XYZClass, String>(new StyledButtonCell()) {
@Override
public String getValue(XYZClass object) {
return "buttonText_goes_here";
}