MulLinejs使用说明.docx
《MulLinejs使用说明.docx》由会员分享,可在线阅读,更多相关《MulLinejs使用说明.docx(22页珍藏版)》请在冰豆网上搜索。
![MulLinejs使用说明.docx](https://file1.bdocx.com/fileroot1/2023-1/23/f839206f-37a7-47a2-9140-ffefb4985f90/f839206f-37a7-47a2-9140-ffefb4985f901.gif)
MulLinejs使用说明
MulLine.js使用说明
具体描述
一约定和声明
(1)你使用得IE版本必须是5.5以上(包括5.5)
(2)在后续的所有说明中,均假定MulLine的对象名为:
ObjGrid;该MulLine对象所在的表单名为:
fm
(3)后续用到的行和列都是从0行0列开始。
和数组是一致的(注:
除非有特殊声明)
(4)所有调用方法和属性的名字遵循命名规则:
首字母小写,后续单词首字母大写。
方法如:
clearData,setRowColData,lock,unLock
属性如:
mulLineCount,canAdd,locked
(5)具体实例:
请看Z:
\resource\模版程序\testMulLine下的示范待码)
运行:
(hostName是主机名)
(6)高级特性中,均借助于外部函数,必须包含相应的外部文件
二基础特性:
1如何初始化MulLine(含属性说明)
(1)在显示MulLine的页面上(例如xxxInput.jsp文件)必须有如下代码:
其位置放在表单fm中
id名称必须是:
span+MulLine的对象名(这里是ObjGrid)
(2)在JS文件中(如xxxInit.js文件)的JavaScript函数中如下设置
假定产生3行两列的MulLine对象
functioninitObjGrid()//函数名为init+MulLine的对象名ObjGrid
{
variArray=newArray();//数组放置各个列
try
{
iArray[0]=newArray();
iArray[0][0]="序号";//列名(序号列,第1列)
iArray[0][1]="30px";//列宽
iArray[0][2]=10;//列最大值
iArray[0][3]=0;//1表示允许该列输入,0表示只读且不响应Tab键
//2表示为容许输入且颜色加深.
iArray[1]=newArray();
iArray[1][0]="示范列1";//列名(第2列)
iArray[1][1]="30px";//列宽
iArray[1][2]=10;//列最大值
iArray[1][3]=0;//是否允许输入,1表示允许,0表示不允许
//后续可以添加N列,如上设置
//生成对象区,规则:
对象名=newMulLineEnter(“表单名”,”对象名”);
ObjGrid=newMulLineEnter("fm","ObjGrid");
//设置属性区(需要其它特性,在此设置其它属性)
ObjGrid.mulLineCount=3;//行属性:
设置行数=3
ObjGrid.displayTitle=1;//标题属性:
1显示标题(缺省值),0隐藏标题
//对象初始化区:
调用对象初始化方法,属性必须在此前设置
ObjGrid.loadMulLine(iArray);
}
catch(ex)
{alert(ex);}
}
上面是MulLine的初始化的基本用法,如果用到其他功能,请参阅该功能的详细说明,会有一些相关的初始化的附加设置。
2如何在JavaScript中给MulLine赋值
使用MulLine对象的setRowColData(row,col,value)方法
参数为:
行,列,值;返回值为真假
如;ObjGrid.setRowColData(0,1,”赋给第0行第1列的值”);
注意:
是从0行0列开始。
因此,我们认为0行是第0行,0列是第0列
注意:
第3个参数,value如果不是变量,请用引号扩住
注意:
如果程序弹出对话框:
提示setRowColData时指定了错误的行(或列),那么意味着你在赋值时指定的行或列超出了范围(即小于0或者大于行数或列数)
注意:
请不要给0列赋值,因为是序号列,会自行变化
3如何在JavaScript中从MulLine取值
(1)取出指定的第几行第几列的值
使用MulLine对象的getRowColData(row,col)方法
参数为:
行,列;返回值:
指定行和列的值
如:
varvalue=ObjGrid.getRowColData(0,1);
注意:
是从0行0列开始。
因此,我们认为0行是第0行,0列是第0列
注意:
如果程序弹出对话框:
提示getRowColData时指定了错误的行(或列),那么意味着你在取值时指定的行或列超出了范围(即小于0或者大于行数或列数)
注意:
可以得到0列(序号列)的值
(2)取出指定的某一行的值
使用MulLine对象的getRowData(row)法方
参数为:
行号;返回值:
指定行的所有值,返回形式为一维数组
如:
variArray=ObjGrid.getRowColData(0);
注意:
是从0行开始。
因此,我们认为0行是第0行。
注意:
如果程序弹出对话框:
提示getRowData时指定了错误的行,那么意味着你在取值时指定的行超出了范围(即小于0或者大于行数)
注意:
数组iArray值不包括序号列的值。
即iArray[0]为该行第1列的值,依次类推。
4如何在JSP中得到MulLine中的值(必须提交页面)
提交有MulLine的页面后,在接受页如下处理:
<%
StringtGridNo[]=request.getParameterValues("ObjGridNo");//得到序号列的所有值
StringtGrid1[]=request.getParameterValues("ObjGrid1");//得到第1列的所有值
StringtGrid2[]=request.getParameterValues("ObjGrid2");//得到第2列的所有值
IntCount=tGridNo.length;//得到接受到的记录数
For(intindex=0;index{
"GridNO="+tGridNo[index]);
"Grid1="+tGrid1[index]);
"Grid2="+tGrid2[index]);
}
%>
如果需要处理被选中的纪录(即CheckBox和Radio框)请参看中级特性说明
5如何在JSP中给MulLine赋值
即在JSP页面中内嵌JavaScript代码,如:
parent.fraInterface..ObjGrid.addOne("ObjGrid");//添加一行,见该方法说明
parent.fraInterface..ObjGrid.setRowColData(行,列,值);
注意:
不要使用parent.fraInterface..fm.ObjGrid方式,否则会报错:
没有该对象
注意:
在将JSP变量传给setRowColData方法的参数3时,请用引号扩住。
如:
“<%=JspValue%>“,对于行,列参数不用加引号扩住(数值型)
6如何添加一行
1程序中请使用方法addOne(”MulLine对象名”)或者addOne()
如:
(1)ObjGrid.addOne(“ObjGrid”);//注意:
有引号
(2)或者ObjGrid.addOne();
2在页面上如果”+”号标记存在,单击即可(该”+”号可以隐藏)
7如何删除一行
1在页面上如果”--”号标记存在,单击即可(该”--”号可以隐藏)
2直接删除任意一行的方法是不对外的,但是你可以查阅:
→如何删除所有行
→如何删除所有空行
→如何删除选中CheckBox选项框的所有行
请参阅下面相关详细说明
8如何删除所有行
使用方法clearData(“MulLine的对象名”)或者clearData();
如:
(1)ObjGrid.clearData(“ObjGrid”);
(2)或者ObjGrid.clearData();
9如何删除所有空行
将MulLine中所有空行(空行:
该行每一列都没有数据)删除
使用方法delBlankLine(“MulLine的对象名”)或者delBlankLine()
如:
(1)ObjGrid.delBlankLine(“ObjGrid”);
(2)ObjGrid.delBlankLine();
10如何隐藏或显示”+”和”--“标记
初始化MulLine时,在属性设置区增加如下:
ObjGrid.hiddenPlus=0;//是否隐藏"+"号标志:
1为隐藏;0为不隐藏(缺省值)
ObjGrid.hiddenSubtraction=0;//是否隐藏"-"号标志:
1为隐藏;0为不隐藏(缺省值)
刷新后将看不到”+”和”--“标记
11如何锁定或解锁”+”和”--“标记
MulLine上的”+”和”--“标记可以禁用或恢复(即锁定或解锁)
锁定:
使用lock()方法如ObjGrid.lock();
解锁:
使用unLock()方法如ObjGrid.unLock();
12如何隐藏一列(不鼓励使用该方法:
显示效果不好)
初始化MulLine设置列数组时,如下设置:
(有2种方法)
iArray[1]=newArray();
iArray[1][0]="示范列";
iArray[1][1]="0px";//→你可以将列宽设为0,该列就隐藏了
iArray[1][2]=100;
iArray[1][3]=3;//→你还可以设置选项:
0和1表示是否容许输入
2表示代码选择,3表示这一列是隐藏的,
你可以放一些自己想放的数据在这列里
上面两种方法都可以
13如何得到行数和列数
得到行数和列数,使用MulLine的属性mulLineCount和colCount
如:
varrowNum=ObjGrid.mulLineCount;//行数
varcolNum=ObjGrid.colCount;//列数
注意:
请不要通过这种方式更改行数和列数。
14如何设置某一列的初始化值
如果想通过初始化的方式给某一列设置缺省值,那么在初始化MulLine的
代码中加入如下:
iArray[1][14]=”初始化值”;
注意:
序号必须是14,该项设置是独立的,和其他设置是不影响的。
15如何设置在页面上的显示宽度
MulLine的显示宽度和页面的宽度是有关系的,这里所指的页面宽度是说
页面下没有左右可移动的滚动条时的页面中放置MulLine的框架的宽度
(1)在一行中放置一个MulLine
如果在初始化时它的各个列宽的和小于页面宽度,那么该MulLine的各个列宽的实际大小将按照下面公式得到:
实际列的宽度=初始设置列的宽度*页面宽度/初始设置列的宽度之和
这样就会填充满整个页面的宽度。
如果在初始化时它的各个列宽的和大于页面宽度,那么将会按照初始化设置的宽度显示。
当然,页面下方会出现左右可以移动的滚动条。
(2)在一行中放置两个MulLine
请在每个MulLine初始化时设置属性:
ObjGrid.mulLineNum=2,
即表明同一行有2个MulLine,这样当2个MulLine的实际宽度小于页面的宽度时,就可以在页面中正常显示(不出现滚动条),而不会出现第一个MulLine的宽度填充整个页面的宽度,第二个MulLine需要移动滚动条才能看到的情况。
当然,如果两个MulLine的宽度和大于页面的宽度,那么是会出现滚动条,并且借助于滚动条才能看到两个MulLine。
(3)在一行中放置多个MulLine
道理和
(2)是一样的。
16如何设置使指定行的某一列得到焦点
使用MulLine的方法setFocus(Row,Col,cObjInstance)
参数说明:
Row行号,注意从0行开始,不能为空。
Col列号,注意从0列开始,但是序号列为0列。
可以为空。
如果为空,自动设置为1。
cObjInstanceMulLine对象名,一般设为空。
17如何判断指定行的某一列是否得到焦点
待做
三中级特性:
1如何使用CheckBox选项框
1.1如何初始化CheckBox选项框
初始化MulLine时,在属性设置区添加属性设置
ObjGrid.canChk=1;//1为显示CheckBox列,0为不显示(缺省值)
1.2如何判断该行CheckBox选项框被选中
(1)在JavaScript里使用方法getChkNo(row)
参数row为行数(从0行开始)返回true(选中)或者false(未选中)
循环处理,即可判断所有行的选中状态。
注意:
如果指定了错误的行(<0或者>=总行数)
弹出错误信息:
在MulLine.js中指定错误的行
(2)在JSP中如下处理:
StringtChk[]=request.getParameterValues("InpObjGridChk");
//参数格式=”Inp+MulLine对象名+Chk”
For(intindex=0;index{
if(tChk[index].equals("1"))
;
if(tChk[index].equals("0"))
;
}
1.3如何选中或不选中所有行的CheckBox选项框
初始化CheckBox后,在MulLine的行标题左首处也会有一个CheckBox.
选中它,则所有行的CheckBox被选中,否则,都不选中
程序中可以使用3个方法:
ObjGrid.checkBoxAll()--选中所有行
ObjGrid.checkBoxAllNot()--撤销所有行选中状态
ObjGrid.checkAll()--如果不处于选中状态,那么选中所有行;否则撤销所有行
1.4如何删除选中CheckBox选项框的所有行
使用方法delCheckTrueLine(”MulLine的对象名”)或者delCheckTrueLine()
如:
(1)ObjGrid.delCheckTrueLine("ObjGrid");
(2)或者ObjGrid.delCheckTrueLine();
所有该Grid处于选中状态的行都被删除
1.5如何选中指定行的CheckBox选项框
使用方法checkBoxSel(行号):
注意—参数行号从1开始。
如:
(1)ObjGrid.checkBoxSel
(1);
使第一行的checkBox()被选中
2如何使用Radio单选框
1.1如何初始化Radio单选框
在初始化MulLine的属性设置区如下设置:
ObjGrid.canSel=1;//1显示;0隐藏(缺省值)
2.2如何判断该行的Radio单选框被选中
(1)在JavaScript中如下使用:
使用方法:
getSelNo()
如:
ObjGrid.getSelNo()内部循环判断所有行
返回被选中的行的行号。
注意:
行号是从1开始,和数组是不一样的。
如果没有选中行,返回值是0。
所以和setRowColData()或getRowColData()使用时要小心
(2)在JSP中如下处理:
StringtRadio[]=request.getParameterValues("InpObjGridSel");
//参数格式=”Inp+MulLine对象名+Sel”
For(intindex=0;index{
if(tRadio[index].equals(“1”))
;
if(tRadio[index].equals(“0”))
;
}
四高级特性:
1如何在MulLine中添加代码选择功能(即双击弹出选择下拉框)
该功能必须与文件
一起使用
(1)如果仅仅是MulLine的某一列需要代码选择功能,那么
首先在使用MulLine的文件中(如:
xxxInput.jsp)必须有如下一行:
none;position:
absolute;slategray">
然后在初始化时设置该列时如下:
(参见MulLine的初始化)
iArray[1][0]="性别";//列名
iArray[1][1]="100px";//列宽
iArray[1][2]=100;//列最大值
iArray[1][3]=2;//是否允许输入,1表示允许,0表示不允许,2表示代码选择
iArray[1][4]="Sex";//是否引用代码:
null或者""为不引用
说明:
iArray[1][3]=2;则该列的每一个输入框的样式都是代码选择的风格
iArray[1][4]="Sex";设置要引用的代码
(2)如果想在某一列实现代码选择的同时,该代码的其它信息显示在其他指定列上
那么在MulLine初始化时,如下设置列数组
iArray[1][0]="区站代码";
iArray[1][1]="100px";
iArray[1][2]=100;
iArray[1][3]=2;//2表示代码选择
iArray[1][4]="Station";//引用代码:
iArray[1][5]="1|2";//引用代码对应第几列,'|'为分割符
iArray[1][6]="0|1";//上面的列中放置引用代码中第几位值
iArray[2]=newArray();
iArray[2][0]="区站名称";
iArray[2][1]="100px";
iArray[2][2]=100;
iArray[2][3]=1;//是否允许输入,1表示允许,0表示不允许
说明:
(a)iArray[1][4]="Station";即该列要引用区站代码
(b)iArray[1][5]="1|2";引用代码信息分别放在第1列和第2列,'|'为分割符
iArray[1][6]="0|1";引用代码数组的第0项(区站代码)放在第1列
引用代码数组的第1项(区站名称)放在第2列
对多列显示代码选择:
这两项必须同时存在,缺少任何一项。
都认为无效
这两项中的数字是上下对应关系,
即Muline第1列→Code第0项
Muline第2列→Code第1项
(c)推荐:
上下两项中的数字数目保持一致,
如:
1|2对应0|1;2|3|4对应1|3|4左右数目相等
但是:
如果象:
iArray[1][5]="1|2";
iArray[1][6]="0";
或者
iArray[1][5]="1";
iArray[1][6]="0|1";
这是不会出错的,将按照最少原则处理,即还是对应关系,但是多出来的项
将会被忽略,或者表格中填充undefine所以建议你还是按照规范书写
(d)排在首位的列号就是代码选择框在页面上要显示的列处,如:
如果iArray[1][5]="1|2";首位是1,则双击当前列(即第1列),那么代码选择框就会在第1列位置处显示。
如果iArray[1][5]="2|1";首位是2,则双击当前列(即第1列),那么代码选择框就会在第2列位置处显示。
推荐将首位设置为你要选择代码的列号。
当然,设置成其他列号是不会有影响的,这可以由你灵活掌握
涉及代码选择问题请问杨涛
(e)扩展功能:
如果在显示时要加上限制条件,譬如,当前列的双击弹出代码框的内容
依赖于其它控件或者其他列的值,那么在初始化MulLine时,对要添加限制条件的列增加如下代码:
(以MulLine的第1列为例)
如果是根据单独的控件的值判断,那么
iArray[1][15]="控件名称";//譬如Form中除了MulLine外的其它控件名称
iArray[1][16]="该控件的值";//可以用fm.all(‘xxx’).value或者固定值或变量传入
如果是多个组合条件,可以先拼成字符串,具体格式请参见showcodelist函数第5个参数的用法。
iArray[1][15]="控件1的名称";//譬如Form中除了MulLine外的其它控件名称
iArray[1][16]=StrSql;
StrSql="#1#and2=#2#";//因为JS往后台传输的原因,单引号“'”必须用“#”替代,譬如:
iArray[1][15]="Name";
iArray[1][16]=StrSql;
StrSql="#姓名#andSex=#性别#";
最后传到后台的语句转换为:
”Name=’姓名’andSex=’性别’“;
如果根据MulLine的某一列的值判断,那么
iArray[1][15]="列名称";//要依赖的列的名称
iArray[1][17]="列号";//该列的列号,
如上即可实现.
如果根据MulLine的某几列的值判断,那么(必须用|分割,且上下数目一致)
iArray[1][15]="列名称1|列名称2|…..";//要依赖的列的名称
iArray[1][17]="列号1|列号2|…..";//列名称的列号,
如上即可实现.
2如何在MulLine中添加代码选择功能(即双击弹出选择下拉框,从前端自己传入数据)
该功能必须与文件
一起使用
并且在使用MulLine的文件中(如:
xxxInput.jsp)必须有如下一行:
none;position:
absolute;slategray">
(1)如果仅仅是MulLine的某一列需要代码选择功能,那么初始化时设置该列时如下:
(参见MulLine的初始化)
iArray[1][0]="性别";//列名
iArray[1][1]="100px";//列宽
iArray[1]