以下是我面临的情况,我有一个aspx页面,其中我添加了我的ascx用户控件,我还有一个<a href
控件,它调用一个js函数来打开一个aspx弹出窗口。
当我打开弹出窗口时,我需要将ascx控件中的数据发送到我的弹出窗口。你可以指导我除了使用会话之外我可以用什么方法来实现这个目标,因为数据可以在很多不同的地方更新,因此维持会话很困难。
由于
答案 0 :(得分:0)
尝试使用这些语法(RegisterStartupScript + window.open)
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "newWindow", "window.open('Test.aspx?ID=" + _cId + "','_blank','status=1,toolbar=0,menubar=0,location=1,scrollbars=1,resizable=1,width=30,height=30);", false);
答案 1 :(得分:0)
你说你正在使用js函数来打开aspx弹出窗口。
然后很简单。
1. Read the Data from the controls of the User control by using javascript var variable1 = document.getElementByID("ControlId").value; var variable2 = document.getElementByID("ControlId").value; 2. Pass this data as query string to the next page window.open("http://www.w3schools.com?id=" + variable1 + "&name=" + variable2); You can read this data from querystring from the next page
答案 2 :(得分:0)
If you cant sent data as querystring , can try some other ways 1. Try to post the form to the other page using target="_blank". we can dynamically change the form action if needed. OR 2. Make use of the window.opener object from the popup to read the data from controls the opener page. var variable1 = window.opener.getElementById("ControlId").value
答案 3 :(得分:0)
在ascx中创建隐藏变量。
<asp:HiddenField runat="server" ID="hdnId" />
在ascx页面加载时设置要发送到隐藏变量的值
protected void Page_Load(object sender, EventArgs e){
hdnId.Value = <value to be sent to pop-up>;
}
在后面的代码中注册ajax管理器。
protected override void OnInit(EventArgs e)
{
RadAjaxManager.GetCurrent(this.Page).ClientEvents.OnRequestStart = "ajaxMngr_RequestStart;";
base.OnInit(e);
}
在ajaxMngr_RequestStart()JS中
function ajaxMngr_SA_RequestStart(sender, args) {
var oPatId = "<%=hdnSendPatId.Value %>";
//add code to open the pop-up, add oPatId as part of the URL
}
}
我使用Telerik,这对管理弹出窗口有很大帮助。如果有帮助,请告诉我。
干杯!