AM的实现类是用来实现存在AM中的VO的相关操作
在表单中新建行的算法(参数hashtable<String,Object>)
1.获得VO传递给VOI
2.VOI创建新行,并在?处insert(新行)
3.判断新增行是否为空(考虑到表中行应该有default值)
4.如果不为空用Set集合存储一下hash中的键,用hashtable的keyset()方法
5.做一个for循环,条件可以是(String keys : Set<String> attrkeys),用来依次把Set键对应的值插入到新的每列中
createRow.setAttribute(keys,hashtable<String,Object>.getAtrribute(key));
?.insert新行
6.setcurrentrow
在表单中删除行的算法
1.页面中在deleteButton键上可以嵌入一个af:showpopupbehavior标签,三个属性triggerType ="action" popupid = "confirm" align= "afterEnd"
2.之后自己写一个<af:popup> 其中id = "confirm" 声明一个dialog,其中加两个 button,确认button键上加上actionListern绑定delete方法
3.delete方法参数为ActionEvent型
4.Row deletedRow = getAM().getVO().getCurrentRow();
5.因为是执行删除操作,所以getAM().deleteCurRow()
在表单中查询行的算法
查询表单时,表单的列应该是只读。这样在bean中应该设一个只读get set函数,来绑定每个列的readOnly属性 #bind{pageflow.managedBean.DisableFlag},在view方法中设置为false.\
在表单中复制行的算法
1.获得VO :viewobjectImpl voi = (ViewObjectImpl)findViewObject(this.voname);
2.得到当前行Row curRow = voi.getcurrentRow();
3.创建行记录Row createRow = voi.creatRow();
4.如果选择行不为空,则复制 if(curRow!=null&&attributes!=null)
5.for循环,循环条件为 String attName:attributes
createRow.setAttributes(attName,curRow,getAttribute(attName));
6.添加新记录到VO
voi.insertRow(creatrow)