2013-10-24 68 views
0

夥計們我在一個彈出窗口中有一個日曆。我需要將選中的日期放入從中打開彈出窗口的頁面的文本框中(即在彈出窗口的父頁面中)。從另一頁面觸發頁面的方法C#

我已經設置越來越選擇在彈出的第一個註冊指令,因爲

<%@ 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; 
} 

但是我需要日期顯示爲soo因爲它在彈出窗口中被選中。

如何從彈出窗口觸發display()

+0

你試過'|上一頁.FindControl'? –

+0

這裏是MSDN鏈接的幫助http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx –

+0

你可以使用'SelectionChanged'事件彈出來觸發'display() ' –

回答

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> 

希望這將有助於

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(); 
} 
相關問題