将数据从aspx页面传递到aspx弹出窗口

时间:2012-06-25 12:49:32

标签: asp.net

以下是我面临的情况,我有一个aspx页面,其中我添加了我的ascx用户控件,我还有一个<a href控件,它调用一个js函数来打开一个aspx弹出窗口。

当我打开弹出窗口时,我需要将ascx控件中的数据发送到我的弹出窗口。你可以指导我除了使用会话之外我可以用什么方法来实现这个目标,因为数据可以在很多不同的地方更新,因此维持会话很困难。

由于

4 个答案:

答案 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,这对管理弹出窗口有很大帮助。如果有帮助,请告诉我。

干杯!