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转换为数组使用。
注意:使用时候注意调用的前后顺序,和几个关键转换函数的使用。