package com.gdxsoft.easyweb.script.display.items.ItemBase
将createItemAddHtml 从返回字符串改为返回map对象,原因是要处理AttributeSet中的class参数,原来在html元素上追加一个 class="xxx",这是无效的
现在将class追加到模板 class中,例如 class="xxx IX_SPAN"。
代码段
/**
* 生成附加的属性 attributeSet, eventSet 在此替换
*
* @param _UserXItem
* @return
* @throws Exception
*/
HashMap createItemAddHtml() throws Exception {
HashMap<String, HashMap<String, String>> sb
= new HashMap<String, HashMap<String, String>>();
...
for (int i = 0; i < _UserXItem.count(); i++) {
...
MListStr a = Utils.getParameters(html, "@");
for (int i0 = 0; i0 < _UserXItemValues.count(); i0++) {
...
HashMap<String, String> paras = new HashMap<String, String>();
boolean ok = false;
for (int i1 = 0; i1 < a.size(); i1++) {
...
h1 = h1.replace("@" + key, v);
ok = true;
paras.put(key, v);
}
if (ok) {
inc++;
paras.put("---GDX-RST---", h1);
sb.put(html+inc, paras);
}
}
}
return sb;
}
/**
* 获取对象的模板文件
*
* @return
* @throws Exception
*/
String getXItemFrameHtml() throws Exception {
...
HashMap<String, HashMap<String, String>> addParas = this.createItemAddHtml();
for (String key : addParas.keySet()) {
HashMap<String, String> paras = addParas.get(key);
boolean is_find_class = false;
if (paras.containsKey("AttName")) {
String val = paras.get("AttName");
if (val.trim().equalsIgnoreCase("class")) {
is_find_class = true;
}
}
if (is_find_class) {
String val = paras.get("AttValue").trim();
if (s1.indexOf(" class=\"") > 0) {
s1 = s1.replace(" class=\"", " class=\"" + val + " ");
} else if (s1.indexOf(" class='") > 0) {
s1 = s1.replace(" class='", " class='" + val + " ");
}
} else {
String val = paras.get("---GDX-RST---").trim();
sb.append(" " + val);
}
}
...
}