常见开发问题
一些常见开发问题及解决方案

新老框架是否可以并存?

不可以,如果一个模块中涉及到新老框架,需要用iframe进行分离.

如何在JSP页面获取当前登录用户相关信息?

                    	
                        ${CurrentUser.xxx},如${CurrentUser.name}

                        CurrentUser对应用户数据对象com.seeyon.ctp.common.authenticate.domain.User

                    

搜索组建

1,怎么定位?

                                我们初始化searchCondition的时候配置参数top,right,bottom,left等来定位。一般我们使用的top和right。例如:
                                var searchobj = $.searchCondition({
                                top:33,
                                right:10,
                                //left:10,
                                //bottom:10,

                            

2,怎么配置?

                                在conditions这个参数当中配置:
                                conditions: [{
                                    id: 'title',//查询条件生成input/select/data的id
                                    name: 'title',//查询条件生成input/select/data的name
                                    type: 'input',//类型: [input:输入框] [select:下拉选择] [datemulti:时间段]
                                    text: '标题',//查询条件名称
                                    value: 'subject'//查询条件value
                                }]
                            

3,点搜索按钮怎么取值?

                                searchHandler: function(){
                                var val = searchobj.g.getReturnValue();
                                   console.log($.toJson(val));
                                },
                            

4,可以配置什么类型?

                                类型: [input:输入框] [select:下拉选择] [datemulti:时间段]
                            

5,怎么设置默认值?

                                searchobj.g.setCondition('datetime', '2012-10-25 17:49', '2012-10-25 17:49');
                            

列表

                    var t = $("#mytable").ajaxgrid({})
                

1,列表组件如何处理特殊数据的展示?

                                function rend(txt,rowData, rowIndex, colIndex,colObj)自定义渲染器,可以对单元格显示数据和样式进行加工展现.
                                //txt为表身渲染单元格文本,
                                //rowData为渲染当前行数据对象,
                                //rowIndex为当前行,
                                //colIndex为当前列,
                                //obj为表头对象的width,name,display,align以及sortType等等
                            

2,如何让grid组件默认不显示某一列

grid默认列不显示使用:hide:true

                            var gridObj = $("#flexme3").ajaxgrid({
                            ...
                            colModel: [{
                                display: 'id',
                                name: 'id',
                                width: '5%',
                                hide:true,
                                sortable: false,
                                align: 'center',
                                type: 'checkbox',
                                isToggleHideShow:true
                            }
                            ...
                            

3,如何让表格宽度自适应?

列表属性width默认是auto,即根据每列的宽度自动计算。也可以设置宽度px的值或者百分比。

4,怎么禁止个性化设置?

列表属性customize个性化设置,默认的是true,禁用的话设为false即可。默认支持

5,表格组件grid的排序机制?

grid默认按照字符串排序,也可以制定排序类型(number或date)

                                colModel : [{
                                    display : '日期',
                                    name : 'mydate',
                                    width : '180',
                                    sortType : 'number'
                                }
                            

6,如何在列表数据加载完之后调用自定义函数?

                                onSuccess:function(){
                                    alert("成功");
                                },
                            

7,如何自定义列表上下箭头事件?

                                slideToggleUpHandle:function(){} 
                                slideToggleDownHandle:dunction(){}
                            

8,如何让列表显示上下结构?

                                列表对象.grid.resizeGridUpDown("middle")//up,down
                            

9,通过什么方式来获取列表所有选中的数据?

                                列表对象.grid.getSelectRows():获取选中行数组
                            

11,UI控件中的grid是否支持多表头,类似于统计报表的表头

新框架grid不支持多列头,可以通过电子表格(普通的table)实现

12,表格组件colModel增加cutsize属性,用于对时间的显示处理截取掉时分秒只保留年月日?

                                colModel : [{
                                    display : '日期',
                                    name : 'mydate',
                                    width : '180',
                                    cutsize : 10
                                }
                            

简易菜单

                    $.menuSimple({})
                

1,如何控制换行?

mRow:true

2,如何控制分割线?

type:line

3,如何让简易菜单直接显示?

                                页面加载完成之后直接初始化简易菜单,例如:
                                $(function () {
                                    $.menuSimple({
                                        left: 20,
                                        top: 20,
                                        mRow:true,
                                        data: [{
                                            name: "示例1",
                                            customAttr: "qq='nodePerm'",
                                            className: "toback_16",
                                            disabled: true,
                                            handle: function (json) {
                                                alert(json.name);
                                            }
                                        }, {
                                            type: "line"//显示分割线
                                        }, {
                                            name: "示例1",
                                            handle: function (json) {
                                                alert(json.name);
                                            }
                                        }]
                                    });
                                });
                            

回到顶部组建

GoTo_Top({ showHeight: 100, marginLeft: 500 });

1,如何指定回到某个位置?

nGoToHeight:100,//默认的是回到顶部

2,到什么位置显示?

showHeight:100

3,如何设置定位?

marginLeft:500,//默认的是798

layout

1,怎么隐藏拖动条?

sprit:true/false //true是显示,false不显示

2,获取某个区域的大小?

通过var layout = $("#layout").layout()函数获取Layout对象。 还可以动态设置layout大小,如:layout.setEast(300);

1,怎么隐藏拖动条?

                                可以。通过spiretBar来配置。例如:
                                spiretBar: {
                                    show: true,
                                    handlerB: function () {
                                        layout.setNorth(98);
                                    },
                                    handlerT: function () {
                                        layout.setNorth(0);
                                    }
                                }
                            
注意:
north 和 south为handlerB和handlerT;west 和 east为handlerL和handlerR

时间控件

1,如何定义显示格式?

显示时分:ifFormat:'%Y-%m-%d %H:%M'
显示月:ifFormat:'%Y-%m'

2,如何控制清除按钮是否显示?

clearBlank:true/false

3,如何绑定选中点击事件?

                                <input id="mycal" type="text" class="comp" comp="type:'calendar',ifFormat:'%Y-%m-%d',onUpdate:aaa"/>
                                <script type="text/javascript">

                                    function aaa(){

                                        alert("aaaa");
                                    }
                                </script>
                            

4,如何设置默认日期?

dateString:'2012-12-16 17:59'

弹出框

var dialog = $.dialog({})

1,怎样从父页面往子窗口传参数?

                                可以通过transParams传参数到弹出窗口中
                                transParams:{
                                            name:"陈宁宁" 

                                       }
                            

2,子页面如何接收父页面传的参数?

                                在子页面中通过
                                window.parentDialogObj[id]获取窗口对象,然后调用getTransParams()来获取传过来的参数
                            

3,如何设置按钮是否高亮显示?

                                按钮初始化的时候默认第一个为高亮,其他的为灰色。show的时候传btnType:1/0 //1为高亮,0为灰色
                            

4,如何给关闭图标添加自定义事件?

                                closeParam:{
                                 'show':true, //必须写。否则按钮图标不显示
                                  autoClose:false, //必须,如果不设置false属性,他会在执行你自定义方法之后,执行自带的方法
                                   handler:function(){ 
                                     //var d = dialog.getClose(); 
                                      alert(1) 
                                    } 
                              },
                            

5,如何定义下部左侧html?

                                bottomHTML:"<label for='Checkbox1' class='margin_r_10 hand'>"+
                                 "<input type='checkbox' value='0' id='Checkbox1' name='option' class='radio_com'>选项1"+
                                 "</label>",
                            

6,如何动态更改弹出窗口的title?

dialog.setTitle(title)

7,如何设置跨iframe显示?

targetWindow:window.parent

8,如何设置按钮可用不可用,显示不显示?

dialog.disabledBtn('按钮id')//按钮不可用
dialog.enabledBtn('按钮id')//按钮可以
dialog.hideBtn('按钮id') //按钮隐藏
dialog.showBtn('按钮id')//按钮显示

9,关闭弹出框

dialog.close();

提示窗口

1,有几种类型?

5种类型: 1,alert窗口 //$.alert("这个是alert窗口!"); 2,提示信息 //$.infor("这个是提示信息!"); 3,confirm // $.confirm({...}); 4,自定义 //$.messageBox({...}) 5,错误对话框 //$.error("这个是错误对话框!");

2,如何给提示窗口绑定自定义事件?

                                以confirm为例:
                                 var confirm = $.confirm({
                                        'msg': '点击按钮后执行某个方法!',
                                        ok_fn: function () { alert('确定后执行,自定义方法!'); },//点击确定执行操作
                                        cancel_fn:function(){alert('取消后执行,自定义方法!');}//点击取消执行操作
                                    });
                            

toolbar

var tt = $("#toolbar").toolbar({...})

1,可以定义几种类型?

1,按钮,2,select 3,checkbox,(默认的是按钮,需要修改的话可以指定type:select/checkbox)

2,如何设置toolbar的图标?

                                toolbar: [{  
                                    className: "ico16",//样式名称[按钮图标--从通用class中查询]
                                    ...
                                }]
                            

3,如何设置按钮可用不可用,显示不显示?

                                禁用: toolbar.disabled(id)
                                启用:toolbar.enabled(id)
                                显示:toolbar.showBtn(id)
                                不显示:toolbar.hideBtn(id)//设置一个按钮不显示,如果不传参数,则设置所有的按钮不显示
                            

4,如何动态添加按钮?重新整理

                                var tt = $("#toolbar").toolbar({
                                //searchHtml:"search",
                                toolbar: [{
                                    id: "delete",
                                    name: "删除",
                                    className: "ico16 del_16",
                                    selected:true
                                }
                            

5,如何设置toolbar的翻页显示不显示?

isPager:true/false;

Tree

$("#tree").tree({})

1,如何更换定义图标?

iconSkin属性 iconSkin:"treeDepartment",//配置class即可换图标

2,如何获取当前选中的树节点?

treeObj.getSelectedNodes()

3,怎么禁用某个树节点?

chkDisabled:true/false //true表示禁用,false表示启用

4,怎么判断当前节点是父节点还是子节点?

                        var sNodes = treeObj.getSelectedNodes();
                        if (sNodes.length > 0) {
                            var isParent = sNodes[0].isParent;
                        }
                    

treeNode.children [n] .isParent //[n] 是子节点的序列号 判断子节点是否为父节点

5,怎么定制异部树查询参数?

managerMethod,异步树加载Manager的方法名,该Manager方法只允许有一个Map参数,用于接收查询参数,当前展开节点id将以idKey属性名传入,另外还可以通过asyncParam配置其它异步树加载查询参数用于指定异步树加载时的其它定制查询参数

6,怎么设置树节点默认展开?

节点的open属性设置为true表示节点展开
open: true,

7,怎么对树的节点进行特殊渲染?

render用于树节点展现渲染,
function render(name, data),第一个参数为树节点显示名称,第二个参数为数据对象,返回值为渲染后的树节点

气球状提示

1,怎么控制气球状提示的位置?

                                $.tooltip({
                                    openPoint: [10, 10],//左,上
                            

2,如何关闭?

定义class="tooltip_close"即可。如:

                            <a class="tooltip_close font_size12" href="javascript:void(0)">关闭</a>
                        

多窗口

1,怎么设置多窗口打开?

                                openCtpWindow({
                                    url:"subForm.html",//新窗口地址
                                    id:id//父窗口存贮新窗口的key,不传则用新窗口的url作为标记
                                })
                            

2,子窗口打开后如何获取父窗口的参数和调用方法?

                                window.opener:就是指的父窗体。
                                window.opener.test(); ---调用父窗体中的test()方法
                                ,如果window.opener存在,设置A窗口中stockBox的值。
                                    if (window.opener && !window.opener.closed) {
                                       window.opener.document.parentForm.stockBox.value = symbol;
                                }


                                window.close();关闭子窗口。
                                子窗口关闭后刷新父窗口:

                                1,window.opener.location.href=window.opener.location.href;
                                2,window.opener.location.reload(true);