EOS学习三

1、datacell的整体架构

datacell的外观其实就是一个table,由行rows和列cells组成,其对应的数据实质上是一个list,由一行一行的entity拼装而成,在保存的时候会形成增、删、改三个list(dataset),datacell的每个cell一般都对应有一个editor,用户点击某个cell的时候,显示该editor,用户离开该editor时,隐藏该editor,editor显示前会从table或entity中去取数据,然后把数据显示到editor的编辑框中,editor隐藏前会把当前编辑框中的数据写回到table和entity中去。

2、获得datacell的引用

document.all.定义datacell的id值,如

var myDatacell = document.all.eosLogicTable;

如果是跨frame,例如要取iframe里面的datacell,可以用

var myDatacell = window.frames("result").document.all.eosLogicTable;

在打开的模态窗口中取其打开者窗口中的datacell可以用

var myDatacell = window.dialogArguments.document.all.eosLogicTable;

其他类似,如parent、opener等都可以用。

3、获得datacell的引用是为了获得以下的引用

1)获得当前选中的行的引用

var myRow = myDatacell.cur_row;

2)获得第一行的引用

var myRow = myDatacell.selectFirstRow;

3)获得最后一行的引用

var myRow = myDatacell.selectLastRow;

4)获得任意一行的引用

var myRow = myDatacell.rows(i),i可以从1到n,如第一行也可用var myRow = myDatacell.rows(1)取到,第二行可以用var myRow = myDatacell.rows(2)取到

,循环取得所有行可以这样来

for(var i=1; i <myDatacell.length; i++){

var myRow = myDatacell.rows(i);

}

4、获得了行之后就可以获得entity和cell的引用了

1)获得entity的引用

myRow.entity

2)获得cell的引用

var myCell = myRow.cells(i),i从0到n

5、获得entity就可以用getProperty和setProperty去取得或设置数据了,如

entity.getProperty("JG");

entity.setProperty("JG");

6、获得cell就可以用以下方式设置或获得页面的显示了

1)设置

myCell.innerHTML = "系统管理员";

myCell.value = "sysadmin"; //排序用的一个属性

2)获得

var myName = cell.innerHTML;

var myID = cell.value;

7、以上是从datacell往下找,找到cell,从cell或cell中的元素往上找一般可以用parentNode属性,如

var myRow = cell.parentNode;

8、往datacell中增加一行可以用

myDatacell.addrow();

9、某一行的数据修改了,要执行

if(myRow.entity.status != Entity.STATUS_NEW)

myRow.entity.status = Entity.STATUS_MODIFIED;

以表示该行数据修改了,datacell保存的时候会把该entity放到modefied的那个list中去

10、addrow()时会调用datacell的onrefresh事件,可以在该事件中指定这一行的格式,如

function cellRefresh_toadd (cell, fieldName, entity ){

    switch( fieldName ){

   case "selectM" :

{

cell.innerHTML = " <input type=button value='选择材料' οnclick=/"javascript:selectCL(this);/" >";

break;

}   

case "SUBJECT_CODE" :

{

var myInnerStr = " <select name="mySelect" > <option value="1" >一 </option > <option value="2" >二 </option > </select >";

cell.innerHTML = myInnerStr;

break;

}

default:

           break;

}

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值