一、第一种方法:通过父窗口直接写子窗口的元素
function assgVal() {
jskh_str = "张三";
wfpjkh_str = "李四";
wfpjdw_str = "xxx有限公司";
var xgr_str = "<%= Session["xx_user"]%>";
var fwqsj_str = "<%= get_fwq_datetime() %>";
$('#son').contents().find("input[name = 'dfpjkh']").val(jskh_str);
$('#son').contents().find("input[name = 'wfpjkh']").val(wfpjkh_str);
$('#son').contents().find("input[name = 'wfpjdw']").val(wfpjdw_str);
$('#son').contents().find("input[name = 'pbzt']").val("出票通知单");
$('#son').contents().find("input[name = 'xgr']").val(xgr_str);
$('#son').contents().find("input[name = 'xgsj']").val(fwqsj_str);
$('#son').contents().find("input[name = 'lrr']").val(xgr_str);
$('#son').contents().find("input[name = 'lrsj']").val(fwqsj_str);
$('#son').contents().find("input[name='new_btn']").val('保存');
$('#son').contents().find("input[name='close_btn']").val('取消');
$('#son').contents().find("input[name='yz_btn']").attr('disabled', true);
$('#son').contents().find("input[name='qxyz_btn']").attr('disabled', true);
$('#son').contents().find("input[name='print_btn']").attr('disabled', true);
$.ajax({
type: "post",
url: "/UI/Cpzb_page/cpzb.aspx/get_sh_dzdh_khhjzh_info",
dataType: "text",
data: "{wfpjdw:'"+wfpjdw_str+"'}",
contentType: "application/json; charset=utf-8",
success: function (data) {
var hh = JSON.parse(data);
var jj = JSON.parse(hh.d)
$('#son').contents().find("input[name = 'cpsh']").val(jj[0].税号);
$('#son').contents().find("input[name = 'wfdzdh']").val(jj[0].地址电话);
$('#son').contents().find("input[name = 'wfkhhjzh']").val(jj[0].开户行及帐号);
},
error: function () {
alert("税号地址电话开户行及帐号获取失败!请联系程序员!");
}
});
$('#son').contents().find("input[name = 'pjbh']").val(<%= get_max_pjbh() %>);
}
二、通过URL给子网页传参数,通过后台给子网页的元素赋值
function wen() {
var hrefs = "<iframe id='son' src='/UI/Cpzb_page/cptzd.aspx?type=new' allowTransparency='true' style='border:0;width:99%;height:99%;padding-left:2px;' frameBorder='0'></iframe>";
$("#win").html(hrefs);
}
//子网页的Page_Load事件中解析传入的参数,根据参数的值给子网页的元素赋值或设置元素的状态:如Button按钮的可用状态等。
protected void Page_Load(object sender, EventArgs e)
{
//通过页面传参得到操作类型,然后设置元素值或状态
string lx=Request.QueryString["type"].ToString();
switch (lx)
{
case "new":
wfpjdw.Text="123";
yz_btn.Enabeld=false;
......
break;
}
}
注意在开发过程中曾经遇到过:dx:ASPxButton用Jquery在前台控制可用状态失效的情况,即在html显示disabled=“disabled”,但是却依然可以点击执行方法,无奈换成了HTML控件成功。
但是由于控制子网页中的元素有两种方法,
一种是父窗口直接给子网页元素写值或控制状态(HTML控件可以, DEV(dx.16.2)控件无效),
一种是通过URL传参,通过page_load事件来解析传入的参数,根据参数值来判断如何控制子网页的元素,
html控件如果想在后台控制其状态,必须在前台代码加入:runat=“server”,否则在后台找不到该控件
dx:ASPxButton控件虽然在前台用Jquery无法控制其状态,但是可以通过第二种方法在后台的Page_Load事件中控制其状态。
秋风2020.2.25写淄博 技术交流与业务联系:375172665
本文介绍了一种在父窗口直接操作子窗口元素的方法,通过JavaScript实现了数据填充,并展示了通过URL参数在子窗口Page_Load事件中控制元素状态的技术。讨论了不同控件在前后端控制状态的差异。
180

被折叠的 条评论
为什么被折叠?



