您的位置:首页 > Web前端 > JavaScript

MulLine.js 使用说明

2016-06-28 16:19 190 查看
                     MulLine.js 使用说明
 
具体描述...
3

一 约定和声明...
3

二 基础特性:...
4

1如何初始化MulLine (含属性说明)...
4

2   如何在JavaScript中给MulLine赋值...
5

3    如何在JavaScript中从MulLine取值...
5

4   如何在JSP中得到MulLine中的值(必须提交页面)...
5

5   如何在JSP中给MulLine赋值...
6

6   如何添加一行...
6

7   如何删除一行...
6

8   如何删除所有行...
7

9   如何删除所有空行...
7

10  如何隐藏或显示”+”和”--“标记...
7

11  如何锁定或解锁”+”和”--“标记...
7

12  如何隐藏一列 (不鼓励使用该方法:显示效果不好)7

13  如何得到行数和列数...
8

14  如何设置某一列的初始化值...
8

15  如何设置在页面上的显示宽度...
8

16如何设置使指定行的某一列得到焦点...
9

17  如何判断指定行的某一列是否得到焦点...
9

三 中级特性:...
9

1 如何使用CheckBox 选项框...
9

1.1  如何初始化CheckBox 选项框...
9

1.2  如何判断该行CheckBox 选项框被选中...
9

1.3  如何选中或不选中所有行的CheckBox选项框...
10

1.4  如何删除选中CheckBox 选项框的所有行...
10

1.5  如何选中指定行的CheckBox 选项框...
10

2 如何使用 Radio 单选框...
10

1.1   如何初始化Radio 单选框...
10

2.2   如何判断该行的Radio 单选框被选中...
11

四 高级特性:...
11

1 如何在MulLine中添加代码选择功能(即双击弹出选择下拉框)11

2如何在MulLine中添加代码选择功能(即双击弹出选择下拉框,从前端自己传入数据)13

3 如何在MulLine中添加字段数据校验功能...
15

4 如何在MulLine中添加双击相应事件,响应自己编写的JS函数...
15

5 如何在MulLine中单击CheckBox时响应开发人员外部编写的JS函数...
16

6 如何在MulLine中单击RadioBox时响应开发人员外部编写的JS函数...
18

7 如何在MulLine中单击“+”按钮和 “–”号按钮时响应开发人员外部编写的JS函数...
19

8 如何在分页显示数据时,使后续页的MulLine中的显示序号与纪录数一致...
20

9 如何在使用代码选择功能时,设置弹出的选择下拉框的宽度...
21

10如何在使用代码选择功能时,强制刷新数据源...
21

11如何在查询时使设置的代码选择列将编码显示为对应的汉字...
21

五 错误描述和诊断...
21

1 如果IE弹出对话框:没有该对象或未知的对象或者对象没有该方法...
21

2 如果弹出对话框:MulLine.js中某某方法出现异常...
21

3如果弹出对话框:MulLinejs中某某方法中指定了错误的列(或者行)...
22

4如果出现其它错误信息...
22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                       具体描述

一 约定和声明

  (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下的示范待码)

运行:http://hostName:8900/ui/testMulLine/mulineTest.html(hostName是主机名)

 

(6)   高级特性中,均借助于外部函数,必须包含相应的外部文件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二 基础特性:

1如何初始化MulLine (含属性说明)

(1) 在显示MulLine的页面上(例如xxxInput.jsp文件)必须有如下代码:

<span id="spanObjGrid "></span> 其位置放在表单fm中

id名称必须是:span+MulLine的对象名(这里是ObjGrid)

(2)    在JS文件中(如xxxInit.js文件)的JavaScript函数中如下设置

假定产生3行两列的MulLine对象

   <scriptlanguage="JavaScript">

  function initObjGrid()    //函数名为init+MulLine的对象名ObjGrid

   {

     var iArray = new Array(); //数组放置各个列

     try

      {

      iArray[0]=new Array();

      iArray[0][0]="序号";  //列名(序号列,第1列)

     iArray[0][1]="30px";  //列宽

      iArray[0][2]=10;      //列最大值

      iArray[0][3]=0;   //1表示允许该列输入,0表示只读且不响应Tab键

                     // 2 表示为容许输入且颜色加深.

                           

iArray[1]=new Array();

      iArray[1][0]="示范列1";  //列名(第2列)

     iArray[1][1]="30px";    //列宽

      iArray[1][2]=10;        //列最大值

      iArray[1][3]=0;       //是否允许输入,1表示允许,0表示不允许

         //后续可以添加N列,如上设置

 

         //生成对象区,规则:对象名=new MulLineEnter(“表单名”,”对象名”);

ObjGrid= new MulLineEnter( "fm" , "ObjGrid" );

//设置属性区 (需要其它特性,在此设置其它属性)

      ObjGrid.mulLineCount = 3; //行属性:设置行数=3   

      ObjGrid.displayTitle =1;   //标题属性:1显示标题 (缺省值) ,0隐藏标题       

        //对象初始化区:调用对象初始化方法,属性必须在此前设置

ObjGrid.loadMulLine(iArray);

      }

      catch(ex)

      { alert(ex); }

    }

</script>

上面是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)方法

参数为:行,列; 返回值:指定行和列的值

如:var value=ObjGrid. getRowColData(0,1);

注意:是从0行0列开始。因此,我们认为0行是第0行,0列是第0列

注意:如果程序弹出对话框:提示getRowColData时指定了错误的行(或列),那么意味着你在取值时指定的行或列超出了范围(即小于0或者大于行数或列数)

注意:可以得到0列(序号列)的值

(2)取出指定的某一行的值

使用MulLine对象的getRowData(row) 法方

参数为:行号 ; 返回值:指定行的所有值,返回形式为一维数组

如:var iArray=ObjGrid. getRowColData(0);

注意:是从0行开始。因此,我们认为0行是第0行。

注意:如果程序弹出对话框:提示getRowData时指定了错误的行,那么意味着你在取值时指定的行超出了范围(即小于0或者大于行数)

注意:数组iArray值不包括序号列的值。即iArray[0]为该行第1列的值,依次类推。

 

4  如何在JSP中得到MulLine中的值(必须提交页面)

    提交有MulLine的页面后,在接受页如下处理:

   <%

     StringtGridNo[] = request.getParameterValues("ObjGridNo");  //得到序号列的所有值

     String tGrid1 [] =request.getParameterValues("ObjGrid1"); //得到第1列的所有值

     String tGrid2 [] =request.getParameterValues("ObjGrid2"); //得到第2列的所有值

    Int  Count = tGridNo.length; //得到接受到的记录数

       For(int index=0;index< Count;index++)

     {

     System.out.println("GridNO="+tGridNo [index]);

     System.out.println("Grid 1="+ tGrid1[index]);

     System.out.println("Grid 2="+ tGrid2[index]);

     }

   %>

    如果需要处理被选中的纪录(即CheckBox 和Radio 框)请参看中级特性说明

 

5  如何在JSP中给MulLine赋值

    即在JSP页面中内嵌JavaScript代码,如:

    <scriptlanguage="javascript">

    parent.fraInterface..ObjGrid.addOne("ObjGrid"); //添加一行,见该方法说明

    parent.fraInterface..ObjGrid.setRowColData(行,列,值);

  </script>

     注意:不要使用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]=new Array();

      iArray[1][0]="示范列"; 

     iArray[1][1]="0px";  // à你可以将列宽设为0,该列就隐藏了

      iArray[1][2]=100;  

      iArray[1][3]=3;     //à你还可以设置选项:0和1表示是否容许输入

2表示代码选择,3表示这一列是隐藏的,

你可以放一些自己想放的数据在这列里

      上面两种方法都可以

 

13 如何得到行数和列数

得到行数和列数,使用MulLine的属性mulLineCount 和 colCount

如:var rowNum=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 。

                 cObjInstance  MulLine对象名,一般设为空。

 

  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中如下处理:

        String tChk[] =request.getParameterValues("InpObjGridChk");

//参数格式=” Inp+MulLine对象名+Chk” 

        For(intindex=0;index<tChk.length;index++)

        {

          if(tChk[index].equals("1"))          

            System.out.println(“该行被选中”);

          if(tChk[index].equals("0"))     

            System.out.println(“该行未被选中”);

        }              

 

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中如下处理:

      String tRadio[] =request.getParameterValues("InpObjGridSel"); 

                         //参数格式=” Inp+MulLine对象名+Sel”

      For (int index=0; index< tRadio.length;index++)

      {

        if(tRadio[index].equals(“1”))

           System.out.println(“该行被选中”);

        if(tRadio[index].equals(“0”))

           System.out.println(“该行未被选中”);

      }

        

 

四 高级特性:

1 如何在MulLine中添加代码选择功能(即双击弹出选择下拉框)

  该功能必须与文件

<SCRIPT src="src="../common/javascript/CCodeOperate.js"></SCRIPT>一起使用

 

(1)如果仅仅是MulLine的某一列需要代码选择功能,那么

首先在使用MulLine的文件中(如:xxxInput.jsp)必须有如下一行:

    <spanid="spanCode" style="display: none; position:absolute;slategray"></span> 

然后在初始化时设置该列时如下:(参见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]=new Array();

      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# and 2=#2#"; //因为JS往后台传输的原因,单引号“'”必须用“#”替代,譬如:

iArray[1][15]="Name";          

iArray[1][16]= StrSql; 

StrSql = "#姓名# and Sex=#性别#";

最后传到后台的语句转换为: ” Name=’姓名’ and Sex=’性别’ “;

         如果根据MulLine的某一列的值判断,那么

iArray[1][15]= "列名称";  //要依赖的列的名称       

iArray[1][17]="列号";     //该列的列号,

       如上即可实现.

         如果根据MulLine的某几列的值判断,那么(必须用|分割,且上下数目一致)

iArray[1][15]= "列名称1|列名称2|…..";  //要依赖的列的名称       

iArray[1][17]="列号1|列号2|…..";    //列名称的列号,

       如上即可实现.

 

2如何在MulLine中添加代码选择功能(即双击弹出选择下拉框,从前端自己传入数据)

该功能必须与文件

<SCRIPT src="src="../common/javascript/CCodeOperate.js"></SCRIPT>一起使用

并且在使用MulLine的文件中(如:xxxInput.jsp) 必须有如下一行:

  <span id="spanCode"  style="display: none; position:absolute;slategray"></span> 

(1)如果仅仅是MulLine的某一列需要代码选择功能,那么初始化时设置该列时如下:(参见MulLine的初始化)

      iArray[1][0]="性别";    //列名

     iArray[1][1]="100px"; //列宽

      iArray[1][2]=100;            //列最大值

      iArray[1][3]=2;       //2表示代码选择(即样式为代码选择)

      iArray[1][10]="CodeName";  //引用代码:"CodeName"为传入数据的名称

      iArray[1][11]="CodeContent"; //"CodeContent" 是传入要下拉显示的代码

说明:

      iArray[1][3]=2; 则该列的每一个输入框的样式都是代码选择的风格     

      iArray[1][10]=" CodeName "; 设置要引用的代码名称,在页面上最好唯一

   iArray[1][11]=" CodeContent "; 设置要引用的代码(有格式要求)

  例如:

      iArray[1][10]=" CodeTest "; 名字最好有唯一性

      iArray[1][11]= "0|^1|^2|^3" ;  以^ 分割每个记录,以 | 分割每个纪录中的字段

如  "0|^1|第一个|^2|第2个|^3|第3个" ;

           或者 "0|^1|第一个|记录|^2|第2个|记录|^3|第3个|记录" ;

(2)如果想在某一列实现代码选择的同时,该代码的其它信息显示在其他指定列上

     那么在MulLine初始化时,如下设置列数组

    

      iArray[1][0]="测试代码";       

     iArray[1][1]="100px";         

      iArray[1][2]=100;       

      iArray[1][3]=2;         //2表示代码选择

      iArray[1][10]="CodeName";  //引用代码:"CodeName"为传入数据的名称

      iArray[1][11]="CodeContent";//"CodeContent" 是传入要下拉显示的代码

     iArray[1][12]="1|2";    //引用代码对应第几列,'|'为分割符

      iArray[1][13]="0|1";    //上面的列中放置引用代码中第几位值

 

说明:

 (a)iArray[1][12]的格式为 ”列号1|列号2|……” ,如:

iArray[1][12]="1|2"; 引用代码信息分别放在第1列和第2列,'|'为分割符

      必须注意的是:”列号1” 必须是当前列的列号。后面的 “列号2|……”等无限制

iArray[1][13]的格式为 ”字段1|字段2|……” ,如:

iArray[1][13]="0|1"; 引用代码数组的第0项(即纪录的第一个字段)放在第1列

                   引用代码数组的第1项(即纪录的第二个字段)放在第2列

对多列显示代码选择:这两项必须同时存在,缺少任何一项。都认为无效

这两项中的数字是上下对应关系,

即Muline第1列显示CodeData的第0项 字段

Muline 第2列显示CodeData的第1项字段

      

 (b)推荐:上下两项中的数字数目保持一致,

如:1|2 对应0|1 ;2|3|4 对应1|3|4  左右数目相等

但是:如果象:

iArray[1][12]="1|2";       

iArray[1][13]="0";        

或者

iArray[1][12]="1";        

iArray[1][13]="0|1";         

这是不会出错的,将按照最少原则处理,即还是对应关系,但是多出来的项

将会被忽略,或者表格中填充undefine 所以建议你还是按照规范书写

(c) 排在首位的列号就是代码选择框在页面上要显示的列处(注意:并且是当前列),如:

如果 iArray[1][12]="1|2"; 首位是1 ,则双击当前列(即第1列)

那么代码选择框就会在第1列位置处显示。

如果 iArray[1][12]="2|1"; 首位是2 ,则双击当前列(即第1列),

那么代码选择框会显示错误!这点和从后台取数据不同,因为ShowCodeListEx代码假定前台的数据存放在传入参数中排在首位的列处,因此会从参数中首位的列号处查找数据源。详情参阅ShowCodeListEx函数(其中Field[0]接受首位列对象)

 

   (d)需要注意的是:数组排序 iArray[1][4]到iArray[1][ 8] 都不能再使用了,格式校验可以使用。

      涉及代码选择问题请问杨涛 

 

3 如何在MulLine中添加字段数据校验功能

 必须包含外部文件<SCRIPTsrc="../common/javascript/VerifyInput.js"></SCRIPT>

 在初始化MulLine时如下设置列数组:

   

  iArray[1][0]="区站代码";       

     iArray[1][1]="100px";         

      iArray[1][2]=100;       

      iArray[1][3]=2;            //2表示代码选择

     iArray[1][4]="Station";    //引用代码:

      iArray[1][9]="区站代码|code:station"; //检验格式:按区站代码格式检验

  {或者iArray[1][9]=” 区站代码|NOTNULL”}

{或者iArray[1][9]=” 区站代码|LEN<6|LEN>8|NOTNULL”}

//即将数组的序号置为

[列数][9]=”该列名称 | 校验类型参数1 [ | 校验类型参数2 | 校验类型参数3…]”

如果检验到错误,会提示:第几行+第几列+错误原因

具体检验格式请参看 VerifyInput 通用录入校验说明文档(著者:胡博

      因为调用VerifyInput的内部函数,所以检验格式是一致的。

 

      注意:检验MulLine中的数据格式请使用MulLine的内部方法checkValue()

      使用方法:ObjGrid. CheckValue(“ObjGrid”); (ObjGrid是MulLine对象名)

                或者ObjGrid. CheckValue( ); (即无参数)

 

     

4 如何在MulLine中添加双击相应事件,响应自己编写的JS函数

 你可以自己编写JS函数,并在MulLine初始化时设置某一列数组,那么在MulLine的

该列的输入格上双击后可以响应你编写的JS函数。

具体设置如下:

 (1)在初始化时

      iArray[1]=new Array();

      iArray[1][0]="性别"; 

     iArray[1][1]="100px";

      iArray[1][2]=100;    

        iArray[1][3]=1;   //是否允许输入,1表示允许,0表示不允许

iArray[1][7]=“functionName” //你写的JS函数名,不加扩号

iArray[1][8]=”[‘str1’,number,……]” //要传入的参数à可以省略该项

    说明:

iArray[1][7]=“functionName” 该函数名由你自己定义,不加扩号

iArray[1][8]=”[‘str1’,number,……]” 传递给函数的的第2个参数

规定它为数组格式(用逗号隔开),数组可以同时包括字符串(请加单引号),数字(不加单引号)等,如果没有要传入得参数,该项可以省略。

注意:某一列的设值iArray[1][4],iArray[1][5],Array[1][6] 和iArray[1][7], iArray[1][8]是不能共同存在的。如果同时存在,那么iArray[1][7],iArray[1][8]是无效的,对该列而言

 

(2)在xxx.js中编写你声明的函,数框架如下:

functionfunctionName (parm1,parm2) //参数名可以是任意的,不限于parm1和parm2

{

//1 内容由你填充,下面只是给出了一些范例

//2 parm1是给定的,表示当前表单中mulLine当前行的spanID

//如果要弹出当前行第1列的值,那么直接如下使用:

alert(fm.all(parm1 ).all(‘ObjGrid1').value );

//利用第二个值

     if(parm2!=null&& parm2!=””) //如果第2个参数parm2有效,parm2可以为空

     {

      var arr= parm2 ;  // parm2 是一个数组,可以存放多个要传入的值

      var arrlength= arr.length; //得到数组长度

     }

}

  注意:该函数是绑定到MulLine上的,所以参数1是初始化MulLine时传入的,通过它可以确定当前行的位置,你只要使用即可;参数2可以传入输组,可以为空,如果需要参数2,必须在MulLine中初始化时设置。

 

5 如何在MulLine中单击CheckBox时响应开发人员外部编写的JS函数

 你可以自己编写JS函数,并在MulLine初始化时简单的设置,就可以实现在MulLine

 的CheckBox上单击时响应你编写的JS函数。

(注意:此时标题栏处会有一个checkBox,它的作用是选中或不选中显示行中的全部checkBox的,对它单独有一个js函数,对应下面的 b 说明)

具体设置如下:(统一约定:ObjGrid 为你定义的MulLine的对象)

 (1)在初始化时

ObjGrid. canChk = 1;  //选中checkBox 功能,这是前提条件

 

(a) 针对每行记录前的checkBox而言,如下

ObjGrid. chkBoxEventFuncName =“functionName”//你写的JS函数名,不加扩号

ObjGrid. chkBoxEventFuncParm =”[‘str1’,number,…]” //传入的参数,可以省略该项

    说明:

”[‘str1’,number,……]” 是传递给函数名为“functionName”的的第2个参数

规定它为数组格式(用逗号隔开),数组可以同时包括字符串(请加单引号),数字(不加单引号)等,如果没有要传入得参数,该项可以省略。

(b)针对标题栏具有全选功能的checkBox而言,如下:

ObjGrid.chkBoxAllEventFuncName=“functionName2”//JS函数名,不加扩号

 

(2)在xxx.js中编写你声明的函数,框架如下:

(a) function functionName (parm1,parm2) //参数名可任意取的,不限于parm1和parm2

{

//1 内容由你填充,下面只是给出了一些范例

//2 parm1是给定的,表示当前表单中mulLine当前行的spanID

//判断当前行的checkBox是否被选中,并执行相应的活动

if(fm.all(parm1).all(' InpObjGridChk').value= ='1' )

 {

//当前行第1列的值设为:选中

   fm.all(parm1).all(' ObjGrid1').value="选中";

  }

  else

  {

   fm.all(parm1).all(ObjGrid1).value="没选中";

  }

//利用第二个参数parm2 即上面的”[‘str1’,number,……]”

     if(parm2!=null&& parm2!=””) //如果第2个参数parm2有效,parm2可以为空

     {

      var arr= parm2 ;  // parm2 是一个数组,可以存放多个要传入的值

      var arrlength= arr.length; //得到数组长度

     }

}

  注意:该函数是绑定到MulLine上的,所以参数1是初始化MulLine时固定传入的,通过它可以确定当前行的位置,你只要使用即可;参数2可以传入输组,可以为空,如果需要参数2,必须在MulLine中初始化时设置。

(b)function functionName2 (parm1,parm2) //参数名可任意,不限于parm1,parm2

{

//1 内容由你填充,下面只是给出了一些范例

//2 parm1是给定的,其值为true orfalse. 表示当前表单中mulLine的实现全选功能的checkBox是否被选中了;parm2 是给定的,代表该checkBox对象,一般不用

//判断当前行的checkBox是否被选中,并执行相应的活动

if ( parm1 )

 {

     alert ( “ 全部选中” ) ;

     //其它操作

  }

 else

  {

     alert( “ 全部没选中” ) ;

  }

}

  注意:该函数是绑定到MulLine上的,所以参数1,2是初始化MulLine时固定传入的,你只要按上面方法使用即可;

 

6 如何在MulLine中单击RadioBox时响应开发人员外部编写的JS函数

你可以自己编写JS函数,并在MulLine初始化时简单的设置,就可以实现在MulLine

 的CheckBox上单击时响应你编写的JS函数。

具体设置如下:(统一约定:ObjGrid 为你定义的MulLine的对象)

 (1)在初始化时

ObjGrid. canSel = 1;  //选中checkBox 功能,这是前提条件

ObjGrid. selBoxEventFuncName =“functionName” //你写的JS函数名,不加扩号

ObjGrid. selBoxEventFuncParm =”[‘str1’,number,…]” //传入的参数,可以省略该项

    说明:

”[‘str1’,number,……]” 是传递给函数名为“functionName”的的第2个参数

规定它为数组格式(用逗号隔开),数组可以同时包括字符串(请加单引号),数字(不加单引号)等,如果没有要传入得参数,该项可以省略。

 

(2)在xxx.js中编写你声明的函数,框架如下:

functionfunctionName (parm1,parm2) //参数名可以是任意的,不限于parm1和parm2

{

//1 内容由你填充,下面只是给出了一些范例

//2 parm1是给定的,表示当前表单中mulLine当前行的spanID

//判断当前行的checkBox是否被选中,并执行相应的活动

if(fm.all(parm1).all(' InpObjGridChk').value= ='1' )

 {

//当前行第1列的值设为:选中

   fm.all(parm1).all(' ObjGrid1').value="选中";

  }

  else

  {

   fm.all(parm1).all(ObjGrid1).value="没选中";

  }

//利用第二个参数parm2 即上面的”[‘str1’,number,……]”

     if(parm2!=null&& parm2!=””) //如果第2个参数parm2有效,parm2可以为空

     {

      var arr= parm2 ;  // parm2 是一个数组,可以存放多个要传入的值

      var arrlength= arr.length; //得到数组长度

     }

}

  注意:该函数是绑定到MulLine上的,所以参数1是初始化MulLine时固定传入的,通过它可以确定当前行的位置,你只要使用即可;参数2可以传入输组,可以为空,如果需要参数2,必须在MulLine中初始化时设置。

 

7 如何在MulLine中单击“+”按钮和 “–”号按钮时响应开发人员外部编写的JS函数

你可以自己编写JS函数,并在MulLine初始化时简单的设置,就可以实现在MulLine

 点击 “+”,”--” 号响应你编写的JS函数。               

具体设置如下:(统一约定:ObjGrid 为你定义的MulLine的对象)

一 “+”号设置

 (1)在初始化时

ObjGrid. hiddenPlus = 0;  //显示“+”号按钮,这是前提条件, 也是默认选项,

如果不写ObjGrid. hiddenPlus = 1; 则默认显示“+”号按钮,

ObjGrid. addEventFuncName=“functionName” //你写的JS函数名,不加扩号

ObjGrid. addEventFunParm=”[‘str1’,number,…]” //传入的参数,可以省略该项

    说明:

”[‘str1’,number,……]” 是传递给函数名为“functionName”的的第2个参数

规定它为数组格式(用逗号隔开),数组可以同时包括字符串(请加单引号),数字(不加单引号)等,如果没有要传入得参数,该项可以省略。

 

(2)在xxx.js中编写你声明的函数,框架如下:

functionfunctionName (parm1,parm2) //参数名可以是任意的,不限于parm1和parm2

{

//1 内容由你填充,下面只是给出了一些范例

//2 parm1是给定的,表示当前表单中mulLine当前行的spanID

   fm.all(parm1).all(' ObjGrid1').value=" test "; //将当前行的第一列值设为 test

//利用第二个参数parm2 即上面的”[‘str1’,number,……]”

     if(parm2!=null&& parm2!=””) //如果第2个参数parm2有效,parm2可以为空

     {

      var arr= parm2 ;  // parm2 是一个数组,可以存放多个要传入的值

      var arrlength= arr.length; //得到数组长度

     }

}

   注意:该函数是绑定到MulLine上的,所以参数1是初始化MulLine时固定传入的,通过它可以确定当前行的位置,你只要使用即可;参数2可以传入输组,可以为空,如果需要参数2,必须在MulLine中初始化时设置。

一 “--”号设置

 (1)在初始化时

ObjGrid. hiddenSubtraction= 0;  //显示“--”号按钮,这是前提条件, 也是默认选项,

如果不写ObjGrid. hiddenSubtraction = 1; 则默认显示“--”号按钮,

ObjGrid. delEventFuncName=“functionName” //你写的JS函数名,不加扩号

ObjGrid. delEventFunParm=”[‘str1’,number,…]” //传入的参数,可以省略该项

    说明:

”[‘str1’,number,……]” 是传递给函数名为“functionName”的的第2个参数

规定它为数组格式(用逗号隔开),数组可以同时包括字符串(请加单引号),数字(不加单引号)等,如果没有要传入得参数,该项可以省略。

       单一单引号

(2)在xxx.js中编写你声明的函数,框架如下:

functionfunctionName (parm1,parm2) //参数名可以是任意的,不限于parm1和parm2

{

//1 内容由你填充,下面只是给出了一些范例

//2 parm1是给定的,表示当前表单中mulLine当前行的spanID

   fm.all(parm1).all(' ObjGrid1').value=" test "; //将当前行的第一列值设为 test

//利用第二个参数parm2 即上面的”[‘str1’,number,……]”

     if(parm2!=null&& parm2!=””) //如果第2个参数parm2有效,parm2可以为空

     {

      var arr= parm2 ;  // parm2 是一个数组,可以存放多个要传入的值

      var arrlength= arr.length; //得到数组长度

     }

}

   注意:该函数是绑定到MulLine上的,所以参数1是初始化MulLine时固定传入的,通过它可以确定当前行的位置,你只要使用即可;参数2可以传入输组,可以为空,如果需要参数2,必须在MulLine中初始化时设置。

8 如何在分页显示数据时,使后续页的MulLine中的显示序号与纪录数一致

该项功能是和 分页查询(easyQuery)一起使用的

如果使用分页查询,请设置属性 mulLineCount 

即在MulLine属性区初始化时添加如下属性:

ObjGrid. mulLineCount  =10  因为easyQuery中设置每页显示10条,如果easyQuery

中每页显示数改变,此属性必须改变

  譬如:每页显示10条纪录,点击下一页,那么序号应该从11开始。如果不设置这个属性,那么还会从1开始。使用中如果有疑问,请查阅easyQuery使用说明或咨询胡博。

 

9 如何在使用代码选择功能时,设置弹出的选择下拉框的宽度

   在xxxInit.jsp在初始化MultiLine时,在使用代码选择功能的这一列上添加如下:

 iArray[1][18]= width ;//width 为你要设置的弹出选择下拉框的宽度.

 

10 如何在使用代码选择功能时,强制刷新数据源

  在xxxInit.jsp在初始化MultiLine时,在使用代码选择功能的这一列上添加如下:

 iArray[1][19]=1 ; //1是需要强制刷新.

 

11 如何在查询时使设置的代码选择列将编码显示为对应的汉字

在xxxInit.jsp在初始化MultiLine时,在使用代码选择功能的这一列上添加如下:

首先需要设置代码选择(从后台取)--见前高级特性1

  iArray[1][20]=1 ; //1 为需要在查询时转换代码为汉字.

 

五 错误描述和诊断

  1 如果IE弹出对话框:没有该对象或未知的对象或者对象没有该方法

如果是没有该对象或未知对象,则使用该对象的方式有误

如果是对象没有该方法,则是方法名写错

 

  2 如果弹出对话框:MulLine.js中某某方法出现异常

这是MulLine内部Bug, 请提出来

 

  3如果弹出对话框:MulLinejs中某某方法中指定了错误的列(或者行)

    这是因为在使用 提示信息中的”某某方法”时输入了错误的行或列

 

  4如果出现其它错误信息

    如果你解决不了或有疑问,请提出来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MulLine