我的p:dataTables都是在复合属性中生成的。因为站点上有多个表,有时我需要将widgetVar链接到变量。我使用了复合属性。
一切正常但我找不到通过widgetVar访问数据表的方法来清除过滤器,我的代码:
public static final String INT_MAX_VALUE = "2147483647";
public static final String LONG_MAX_VALUE = "9223372036854775807";
public static Number stringToMinimalNumberWithoutBigInteger(String numberStr){
//Removing the minus sign to test the value
String s = (numberStr.startsWith("-") ? numberStr.substring(1,numberStr.length()) : numberStr);
if(compareStringNumber(s, LONG_MAX_VALUE) > 0){
return new BigInteger(numberStr);
} else if(compareStringNumber(s, INT_MAX_VALUE) > 0){
return new Long(numberStr);
} else {
return new Integer(numberStr);
}
}
//return postive if a > b, negative if a < b, 0 if equals;
private static int compareStringNumber(String a, String b){
if(a.length() != b.length()){
return a.length() - b.length();
}
for(int i = 0; i < a.length(); i++){
if( a.codePointAt(i) != b.codePointAt(i) ){ //Or charAt()
return a.codePointAt(i) - b.codePointAt(i);
}
}
return 0;
}
我的问题是这部分:PF(#{cc.attrs.CC_tableName})
表的widgetVar设置正确,当我直接在按钮的onclick属性中输入tableName时我可以访问它,但是每个站点上只有1个表正常工作...所以如何获取dataTable通过使用复合属性?
答案 0 :(得分:0)
找到解决方案,非常简单。你需要添加''altough它是一个变量,所以这个工作:
PF('#{cc.attrs.CC_tableName}')