2012-01-07 6 views
5

Ho aggiunto un ASPxPopupControl, che include un pulsante Salva, e voglio chiuderlo dopo aver salvato un record.Nascondere ASPxPopupControl dal codice dietro

ho provato la seguente:

string str = @"<script language=""javascript"" type=""text/javascript"">function HideEscalateAsk() {pcEscalteAsk.Hide();}</script>"; 
        Page.RegisterClientScriptBlock("ClientScript", str); 

ma ancora non funziona. Come posso chiudere ASPxPopupControl?

+0

cura di aggiungere il tag corretto .. se si tratta di controllo devexpress quindi aggiungere il tag 'devexpress' anche .. provare a mettere questo codice script client sulla pagina e quindi chiamare il client click sull'evento del pulsante salva. stanno usando .. –

risposta

5

Per prima cosa. Come stai gestendo il pulsante Salva; Server Side evento o Client Side.

Se si utilizza lato client, utilizzare l'evento lato server Callback per salvare i dati e l'evento client End Callback per chiudere popup.

Se si utilizza l'evento Server Side, utilizzare la proprietà ASPxPopupControl.ShowOnPageLoad.

protected void btnShowPopup_Click(object sender, EventArgs e) { 
      txtPopup.Text = txtMain.Text; 
      ASPxPopupControl1.ShowOnPageLoad = true; 
     } 
     protected void btnOK_Click(object sender, EventArgs e) { 
      // TODO: your code is here to process the popup window's data at the server 
      txtMain.Text = txtPopup.Text; 
      ASPxPopupControl1.ShowOnPageLoad = false; 
     } 

consultare seguenti link per informazioni:
How to show the ASPxPopupControl
How to show and hide a popup window via server side code

+0

funziona per me, grazie per quello –

+0

Felice, ha funzionato per voi. –

+0

Grazie ma non ha funzionato per me purtroppo. Ho trovato un modo e lo scriverò come un'altra risposta. – QMaster

0

penso che questo sia il modo migliore per che, come indicato DevSupport. È necessario essere scrivere uno script java come di seguito:

//This function will close the pop window 
function ClosePopWindow() { 
    var paentWin = window.parent; 
    window.parent.PopWindow.Hide(); 
} 

E

//This function will clear inside content of pop window 
function ClearPopWindow() { 
     var paentWin = window.parent; 
     paentWin.PopWindow.SetContentHtml(null);    
    } 

e quindi chiamare da codice dietro quando si ha bisogno (dopo tutto di processo che si vuole fare) come questo:

Page.ClientScript.RegisterStartupScript(GetType(), "script", "ClosePopWindow();", true); 

oppure se si desidera cancellare il contenuto è possibile utilizzare la seconda funzione. Attenzione il numero PopWindow è ClientInstanceName di ASPxPopupControl. Questo approccio funzionerà in qualsiasi situazione, ad esempio quando la finestra pop definita nella pagina Master e l'URL del contenuto è una finestra senza pagina principale perché tenta di ottenere la finestra padre negli elementi html finali nel browser.

Si può leggere una risposta di sostegno Dev a questo: https://www.devexpress.com/Support/Center/Question/Details/B199294

E da ASP.NET Forum, Terry Guo risposta a questo: http://forums.asp.net/t/1990775.aspx?How+to+close+the+popup+from+the+popup+containing+page+

Spero che questo aiuto.