对于dthmlxGrid的大众版本使用,我们可以通过加载xml文件来完成数据的加载,在此过程中就要自己拼凑xml文件,不过我们可以自己写接口来实现xml文件的重复书写。
一、页面初始化
var mygrid;
function doInitGrid(){
mygrid = new dhtmlXGridObject('mygrid_container');//用构造方法初始化表格对象,参数是已定义的DIV的id
mygrid.setImagePath("/ipsp/gridtest/imgs/");//设置表格的图片路径
mygrid.setHeader("#master_checkbox,资源Id,资源名称,从账号");//设置表格的表头信息
mygrid.setInitWidths("50,100,200,*");//设置列宽度
mygrid.setColAlign("center,left,left,left");//这是列内容的对齐方式
mygrid.setColTypes("ch,ro,ro,link");
mygrid.setSkin("light");//设置皮肤
mygrid.enableAutoHeigth(true,200);//设置高度自适应,最高200
mygrid.enableAutoWidth(true);//设置宽度自适应
//mygrid.setEditable(false);//设置不可编辑
mygrid.enableRowsHover(true,"hover");//设置鼠标移动到某一行上的样式
mygrid.init();//初始化
mygrid.loadXML("xxx.action");//加载数据源,此处可以直接加载xml文件
mygrid.setColSorting("na,int,str");//点击header排序
}
List<Userinfo> list=new ArrayList<Userinfo>();
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(new LoadXml.get(list));
response.getWriter().flush();
三、xml文件类
public class LoadXml {
public static String getXML(List list) {
StringBuffer xml = new StringBuffer(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
xml.append("<rows>");
getXML(xml, list);
xml.append("</rows>");
return xml.toString();
}
/**
* @methodName getXML
* @param xml
* @param list
* @param ruleType
*/
private static void getXML(StringBuffer xml, List<Userinfo> list) {
for (Iterator<Userinfo> it = list.iterator(); it.hasNext();) {
Userinfo az = it.next();
xml.append("<row id=\""+az.getId()
+"\">");
xml.append("<cell>" +az.getResId()
+"</cell>");
xml.append("<cell>" +az.getResName()
+"</cell>");
xml.append("<cell>" +"从账号^http://... "
+"</cell>");
xml.append("</row>");
} }
}