需求: 页面1显示的是当前记录的几个比较重要的字段,点击当前一行然后点击编辑,要弹出一个窗口,显示详细字段,并可以编辑。
实现方法1:
在主页面,也就是页面1中,添加加载结束事件。 - var curLGP = contentPane.curLGP; //获取当前填报表
- contentPane.on("cellselect", function(rowvalue) { //增加单元格选中监听事件
- var rownum = $(rowvalue).attr("id"); //获取选中的单元格的当前行号
- window.num = rownum; //将当前行号赋值给window的num变量
- });
复制代码 这个帮助文档中有。 然后在主页面上添加一个编辑按钮,添加按钮的点击事件。 - var a=(window.num.split("-")[0]);
- var b=a.substring(1);//获取到行号
- var c="B"+b;//这一行数据的主键也就是id放在B列隐藏。
- var d=contentPane.curLGP.getCellValue(c); //获取到id的值
- //做到这步 已经获取到id值了。接下来我们就要给新的窗口穿参数了。
复制代码 创建新的窗口: - var iframe = $("<iframe id='inp' name='inp' width='100%' height='100%' scrolling='yes' frameborder='0'>"); // 对话框内iframe参数的命名,默认宽高占比是100%,可向下滚动
- iframe.attr("src","${servletURL}?reportlet=xiangqing.cpt&op=write&id="+d); //复制之后记得修改路径
- var o = { width :530, //对话框宽度
- height: 600 //对话框高度
- };
- FR.showDialog("编辑", o.width, o.height, iframe,o);//弹出对话框
复制代码 然后我们在xiangqing.cpt页面随便找个一个单元格写=$id即可获取到在主页面点击的id值。 实现方法2: 其实方法1和方法2的思路都是一样的,都是获取到点击行的主键id然后传给新的窗口,方法2更为完善 - contentPane.on("cellselect", function(td) { //获取单元格被选中监听事件
- var row =contentPane.curLGP.getTDRow(td); //直接获取到行号
- if(row<4)//这里我是做了一个判断,比如表头页面肯定是有几行是不能选的,方法1中那个方法是页面所有的地方都可以点击获取并传值,没有做判断
- return;//小于4行就return出去。
- var id=contentPane.curLGP.getCellValue(3,row-1); 直接根据单元格获取到id值。
- contentPane.curLGP.setCellValue("G1",null,id); //这里是我在主页面上给F1单元格赋值 ,然后把F1单元格隐藏就行了
- });
复制代码 然后在编辑按钮上一样是添加点击事件,然后把FI单元格的值当做参数传递出去就行。获取方法: - var version=contentPane.curLGP.getCellValue(6,0);
- if(version.length==0)
- {
- return;
- } ;
复制代码
这个只是提供一个思路和一种获取到主键的方法,可以用在很多方面,比如获取到id进行删除等。
|