Java 如何以编程方式在文本框上设置css错误样式
为什么我不能将自定义css样式应用于单个文本框 我试图在单个文本框上设置一些错误样式。以下实现有什么问题 初始化: 资源接口Java 如何以编程方式在文本框上设置css错误样式,java,css,gwt,Java,Css,Gwt,为什么我不能将自定义css样式应用于单个文本框 我试图在单个文本框上设置一些错误样式。以下实现有什么问题 初始化: 资源接口 interface ErrorRes extends ClientBundle { static final ErrorRes INSTANCE = GWT.create(ErrorRes.class); @Source("Error.css") Style css(); interface Style extends CssResou
interface ErrorRes extends ClientBundle {
static final ErrorRes INSTANCE = GWT.create(ErrorRes.class);
@Source("Error.css")
Style css();
interface Style extends CssResource {
@ClassName("gwt-TextBox-error")
String style();
}
}
Error.css
.gwt-TextBox-error {
border: 1px solid red !important;
}
如果您不想在小部件上获取gwt TextBox错误样式名称,则需要设置
box.setStylePrimaryName(“gwt TextBox”)代码>-默认情况下为。当出现错误时,使用box.setStyleDependentName(“错误”,true)代码>HTML将为class=“gwt TextBox gwt TextBox error”。
要清除错误样式,请使用box.setStyleDependentName(“错误”,false)代码>
或
您可以以相同的方式使用addStyleName(“gwt TextBox error”)
和removeStyleName(“gwt TextBox error”)
---更新---
所以,我试着处理你的案子,效果很好。首先,您需要在运行时将css从资源注入页面:
ErrorRes.INSTANCE.css().ensureInjected();
我在onModuleLoad()的开头使用它
然后,要添加错误样式,请使用:box.addStyleName(样式)代码>
和box.removeStyleName(样式)
将其删除
不能将pairsetStylePrimaryName()
和setStyleDependentName()
与绑定的css一起使用,因为css名称将被混淆 我不确定这是否正确:box.setStylePrimaryName(样式)代码>。几个月前我在使用GWT,我还记得更新相关样式,这里为您设置的是基本样式,而不是错误样式。第二,您是否签出了生成的HTML?它可能会给你更多关于这个问题的提示。我试过你的代码,效果很好。请参阅我的更新。如果我将“gwt TextBox error”
css类放在我的主css文件中,您的第二个选项将非常有效。但是我想要一个单独的css文件,只用于错误样式。而且,我不想将字符串文字与addStyleName(“gwt TextBox error”)
一起使用,而是像上面写的那样从ErrorRes.INSTANCE
获取css类名。无论如何,使用addStyleName(STYLES)
不起作用。我的客户包有什么问题吗?
ErrorRes.INSTANCE.css().ensureInjected();