二 gauce本身封装了页面上的元素,如表格,下拉列表框,复选框,单选框等。其中grid就是表格,先列出一个简单的表格来解释。
<OBJECT class=work_box<%=clsidGrid%> id=gridTest width="100%" HEIGHT="500">
<PARAM NAME="DataId" value='tableds_test'>
<PARAM NAME="ROWHEIGHT" value=20>
<PARAM NAME="editable" value=true>
</OBJECT>
在页面的javascript中也有定义:
function gridformat(){
gridTest.format=
"<C> ID=id,Name='序号',width=120,align=right,edit=none+"</C>"+
"<C>ID=Name,Name='姓名',width=120,align=left,edit=true,sort=true"+"</C>"+
"<C>ID=fliterTime,Name='筛选时间',width=120,align=left,edit=true,Mask='XXXX-XX-XX'sort=true"+"</C>"
}
上面2段加起来就基本是一个grid的定义,也就是表格的定义。
三
1上面的第一行work_box是表格样式定义,<%=clsidGrid%>是在其他一个jsp页面上定义的:
<%
STring clsidGrid="classid='clsid:71E7ACAD-EF63-4055-9894-229b056E9C31'"
%>
它用来标示这是一个grid。
2 id是标示grid的唯一标示符。
3 第一个属性dataId的值是这个grid要显示的dataSet。dataSet可以理解为sql中的resultSet,它在页面的定义如下:
<object <%=clsiddataSet%> id=tableds_test></object>
(1)它的初始化如果只是简单的,不用从数据库查询的话,可以在页面定义,如:
tableds_test.setDataHeader("id:int,name:STRING(20,FITERTIME:STRING(20))");
tableds_test.addRow();
tableds_test.NameValue(1,"id")=20;
tableds_test.NameValue(1,"Name")="wang";
tableds_test.NameValue(1,"filterTime")="20081124";
tableds_test.addRow();
tableds_test.NameValue(2,"id")=30;
tableds_test.NameValue(2,"Name")="wangli";
tableds_test.NameValue(2,"filterTime")="20081125";
上面初始化时首先定义有几列,然后给每一行赋值,赋值时先创建一行,其中1表示第几行,"id"表示列名
(2) 如果是从数据库查询的话,在类中可以这样写:
GauceDataSet userSet=gis.read("testList");
userSet.addDatacolumn(newcolumn("id",com.gauce.GauceDataColumn.TB_NUMBER,0,0));
userSet.addDatacolumn(newcolumn("name",com.gauce.GauceDataColumn.TB_STRING,0,0));userSet.addDatacolumn(newcolumn("fiterTime",com.gauce.GauceDataColumn.TB_STRING,0,0));
GauceDataRow row=userSet,newDataRow();
row.addColumnValue(17);
row.addColumnValue("wang");
row.addColumnValue("20081124");
上面定义dataSet也是先定义列,然后给每一行赋值。
4 第二个属性ROWHEIGHT,表示每一行的高度。
5 第三个属性editable,表示这个grid里的数据是否可以被编辑,值为true时可以编辑,为false时不能编辑。
6 第四个属性也就是javascript定义的format,是定义表格的每一列的
(1)<C>表示列的意思,有几个<C>也就是有几列
(2)<C>里的ID的值是它所对应的dataSet的列名,name是页面上显示的值,edit表示是否可编辑,sort是否可排序,show是否可显示,Mask设置显示格式,width设置这列的宽度,align设置对齐方式是居中还是左或右。另外还有在上述例子中没有列举的editStyle是设置编辑样式的,是下拉列表框还是普通的文本框,Data是定义当编辑样式为下拉列表时,它所显示的值。