asp.net中客户端控件同时调用js和服务器端click事件

在初始化的OnInit中方法:

    this.btnConfirm.OnClientClick = "javascript:PopupConfirmSelection(); return true;";
            this.btnConfirm.Click += btnConfirm_Click;

在这里return true或是不设置的时候才可以继续执行click,return false无效

js代码:

function PopupConfirmSelection() {
        var beginDate = $('#<%= dpBeginDate.ClientID %>_txtDate').val();
        var endDate = $('#<%= dpEndDate.ClientID %>_txtDate').val();
        var arr = new Array();
        $("div#divSelectedUnits div.selectedUnit").each(function () {
            var selectedUnit = $(this);
            var unitId = selectedUnit.attr('unitId');
            var unitCode = selectedUnit.attr('code');
            var tradeMixId = selectedUnit.attr('tradeMixId');
            var rentArea = selectedUnit.attr('rentArea');
            var useArea = selectedUnit.attr('useArea');
            var publicArea = selectedUnit.attr('publicArea');
            var contractUnit = { "UnitId": unitId, "UnitCode": unitCode, "TradeMixId": tradeMixId, "UnitRentArea": rentArea, "UnitUseArea": useArea, "UnitPublicArea": publicArea, "BeginDate": beginDate, "EndDate": endDate };
            arr.push(contractUnit);
        });
        var str1 = JSON.stringify(arr);
        $('#<%=hdnContractUnitSelected.ClientID %>').val(str1);
    }

    function PopupConfirmSelection2() {
        var arr2 = eval($('#<%=hdnContractUnitSelected.ClientID %>').val());
        top.returnValue = arr2;
        ClosePopup(true);
        return false;
    }

页面中的隐藏控件:

<asp:HiddenField ID="hdnContractUnitSelected" runat="server" />

在js中获取的是个数组形式的数据,放到页面中的隐藏控件中,调用PopupConfirmSelection()后使用JSON.stringify将获得的arr转换序列化成字符串使用,在PopupConfirmSelection2()中再将获得的字符串使用eval转换为数组使用。

 

注意:使用时候注意调用的前后顺序,和几个关键转换函数的使用。

posted on 2014-02-27 10:30  RIIS  阅读(1437)  评论(0编辑  收藏  举报

导航