伙计我在弹出窗口中有一个日历。我需要在其上选择的日期到打开弹出窗口的页面的文本框中(即弹出窗口的父页面)。
我已经设置了公共访问方法,即在弹出窗口中选择的日期作为首次注册指令
<%@ 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()
?
答案 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>
希望这会有所帮助