回调函数(CallBack)

来源:互联网 发布:公安网络 编辑:程序博客网 时间:2024/05/18 15:30

需求:选择合同后,带回合同的信息(合同名称,供应商名称,联系人)


第一个图为:AddDdSp.html(新增定点商品)

这里写图片描述


第二个图为:SelectDdht.html(选择定点合同)

这里写图片描述


点击“选择”时触发js

    function xzHtOrGys(obj){        var cgfl = document.getElementById("splb").value;        if(cgfl==null||cgfl==''){         alert("请选择采购物品!");         return false;        }        obj.target=doShowDialogX(6,800,500);        var fbxqid=document.getElementById("splb").value;        document.getElementById("ddhtHref").href = contentPath+"/eps/wt/wtgl/wtdlxdj/SelectDdht.html?callback=top.PopDialog2.setDdht";        return true;    }

其中,top.PopDialog2为新增顶点商品的页面(AddDdSp.html),setDdht为AddDdSp.html的js方法,这个方法此页面不调用,在SelectDdht.html页面回调此方法。

    function setDdht(htid,htmc,yf,lxr,gysbh){        document.getElementById("htid").value = htid;        document.getElementById("htmc").value = htmc;        document.getElementById("yf").value = yf;        if(lxr!="null"){            document.getElementById("lxr").value = lxr;        }        document.getElementById("gysbh").value = gysbh;    }

下面来看SelectDdht.html

function getSelectValue(){            var temp="";        var elements = document.getElementsByName("r_gsmc");            for (var i = 0; i < elements.length; i = i + 1){                if (elements[i].checked==true) {                    temp=elements[i].value;                    selectTitle = elements[i].title;                    selectId = elements[i].value;                    return temp;                }                           }            return temp;        }
    function callBackMethod() {         try {                var value = getSelectValue();        var arr = selectId.split("|");        var htid = arr[0];        var htmc = arr[1];        var yf = arr[2];        var lxr = arr[3];        var gysbh = arr[4];        if("" == value || "undefine"==value)        {            alert("请先选择供应商信息");            return false;        }               <span jwcid="@Insert" value="ognl:callBack"></span>(htid,htmc,yf,lxr,gysbh);        <!-- 回调方法,对应上面的top.PopDialog2.setDdht -->        doHideDialogX(window.frameElement.index);      } catch(e) {        alert("回调方法'<span jwcid="@Insert" value="ognl:callBack"></span>'执行发生异常:"+e);        throw e;      }   }
        <!-- 定点合同列表内容 -->        <tr align="center" jwcid="@xylib:Foreach" source="ognl:listJC_DDHT" value="ognl:cur_JC_DDHT" element="literal:tr" index="ognl:index" title="ognl:cur_JC_DDHT.htmc">            <td>                <input type="radio" name="r_gsmc" jwcid="id@xylib:Radio" value="ognl:cur_JC_DDHT.id+'|'+cur_JC_DDHT.htmc+'|'+cur_JC_DDHT.yf+'|'+cur_JC_DDHT.lxr+'|'+cur_JC_DDHT.gysbh" title="ognl:cur_JC_DDHT.htmc"/>            </td>            <td>                <span jwcid="@Insert" value="ognl:getRowIndex(index)" />            </td>            <td>                <span jwcid="@Insert" value="ognl:cur_JC_DDHT.htbh" />            </td>            <td>                <span jwcid="@Insert" value="ognl:cur_JC_DDHT.htmc" />            </td>            <td>                <span jwcid="@Insert" value="ognl:cur_JC_DDHT.yf" />            </td>        </tr>

点击SelectDdht.html中的“确定”时,执行callBackMethod()方法


再来看,SelectDdht.html对应的Page:SelectDdhtPage.java

    private String callBack;    protected void initialize() {        super.initialize();        //.....        callBack = null;    }    public String getCallBack() {        if(this.isRendering()&&callBack==null){            callBack = this.getRequestCycle().getParameter("callback");            //获取 ?callback=top.PopDialog2.setDdht  callback参数        }        return callBack;    }    public void setCallBack(String callBack) {        this.callBack = callBack;    }

《over》

0 0
原创粉丝点击