jQuery MiniUI

 找回密码
 立即注册
查看: 3702|回复: 3
打印 上一主题 下一主题

mini-buttonedit控件问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2014-7-4 17:05:54 |只看该作者 |倒序浏览
<input name="BelongToDeptName" class="mini-buttonedit" textname="BelongToDeptName"
                                style="width: 90%" onbuttonclick="onmultideptselect" data-options="{DeptId:'BelongToDeptID',DeptName:'BelongToDeptName'}"
                                selectonfocus="true" allowinput="false" />


此控件弹出其它页面选择数据后返回当前页时( mini.open其它页面并返回数据后),会有卡的过程,此时表单上其它控件,鼠标点击无法获得焦点。  过一会后才会获取到焦点。

onbuttonclick="onmultideptselect" 代码如下


function onmultideptselect(sender) {
    var btnEdit = this;
    mini.open({
        url: "/Portal_New/Pop/MultiDeptSelect",
        title: "部门多选",
        width: 250,
        height: 500,
        onload: function () {
            var iframe = this.getIFrameEl();
            if (iframe.contentWindow.setData)
                iframe.contentWindow.setData(data);
        },
        ondestroy: function (action) {
            if (action != null && action.Action == "ok") {
                var data = action.Rows;

                var ids = "";
                var names = "";

                if (data) {
                    for (var i = 0; i < data.length; i++) {
                        if (i == data.length - 1) {
                            ids += data[i]["FullId"];
                            names += data[i]["FullName"];
                        }
                        else {
                            ids += data[i]["FullId"] + ",";
                            names += data[i]["FullName"] + ",";
                        }
                    }
                }
                if (btnEdit.DeptId)
                    setPopCtrlValue(btnEdit.DeptId, ids)
                if (btnEdit.DeptName)
                    setPopCtrlValue(btnEdit.DeptName, names)
            }

        }
    });
}


Rank: 8Rank: 8

沙发
发表于 2014-7-4 17:13:06 |只看该作者
ondestory里都是些什么操作,你把里面的去掉看一下还有没有问题

Rank: 3Rank: 3

板凳
发表于 2014-7-5 21:41:43 |只看该作者
felt 发表于 2014-7-4 17:13
ondestory里都是些什么操作,你把里面的去掉看一下还有没有问题

ondestroy: function (action) {
            if (onclose) {
                var data;
                if (action != null && (action == "close" || action == "cancel" || action == "ok")) {
                    data = { Action: action };
                }
                else {
                    data = action;
                }
                data = mini.clone(data);   
                onclose(data, true)
            }
        }

里面仅仅对弹出页返回的数据稍做json处理,onclose是你们的判断关闭页面的代码。 唯一可能慢的就是mini.clone(data)的操作。。。。 麻烦你们能分析一下为什么这个过程会影响表单页其它控件获取焦点。

Rank: 8Rank: 8

地板
发表于 2014-7-6 17:51:32 |只看该作者
lljuser 发表于 2014-7-5 21:41
ondestroy: function (action) {
            if (onclose) {
                var data;

请提供重现的html页面,就看这些代码判断不出来

Archiver|普加软件

GMT+8, 2024-11-5 22:42 , Processed in 1.040438 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部