从另一个页面触发页面方法C#

时间:2013-10-24 07:00:54

标签: c# asp.net triggers webpage

伙计我在弹出窗口中有一个日历。我需要在其上选择的日期到打开弹出窗口的页面的文本框中(即弹出窗口的父页面)。

我已经设置了公共访问方法,即在弹出窗口中选择的日期作为首次注册指令

<%@ PreviousPageType VirtualPath="~/DateFrom.aspx" %> 

然后在弹出窗口

//making value of hidden field available to the "destination page"
        public string from
        {
            get
            {
                return hdnFrom.Value.ToString();
            }
        }

我也可以通过

方法在父页面上访问此值
public string display()
{
    Label1.Text = PreviousPage.from;
}

然而,我需要在弹出窗口中选择日期后立即显示日期。

如何从弹出窗口中触发display()

2 个答案:

答案 0 :(得分:1)

Saghir的方法相比,另一种方法有点像反向方法。

您的父页面打开了弹出页面,如下所示:

function openCalendar(){
    window.open('calendar.aspx', '_blank', 'width=200,height=100');
}

function populateCalendarTextbox(val){
    document.getElementById('calendarbox').value = val;
}

在弹出页面(calendar.aspx)中,您可以编写如下代码:

function sendToParent(value){
    //Assume value is assigned from the calendar control 
    //by passing as argument to this function
    window.opener.populateCalendarTextbox(value);
    window.close();
}

答案 1 :(得分:0)

您可以使用javascript将子弹出窗口中的值发送到父网页 这是您child.aspx

的脚本
<script type = "text/javascript">

function childFunc()

{

    return document.getElementById ("<%Calender1.ClientID%>").value;

}

</script>

并在parent.aspx

<script type = "text/javascript">


var PopUpObj;

function popUp(url)

{         PopUpObj = window.open(url);         PopUpObj.focus();     }

function callChildFunc()
{
    if(popUpObj != null && !popUpObj.closed) 
    {
        var val = popUpObj.childFunc();
        alert(val);
    }
}
</script>

希望这会有所帮助