Domanda

Sto cercando di impostare il codice HTML di un Iframe in fase di esecuzione, dal codice dietro.

Nella mia pagina aspx ho:

<asp:Button ID="btnChange" runat="server" Text="Change iframe content" 
onclick="btnChange_Click" />

<br />

<iframe id="myIframe" runat="server" />

nel codice dietro:

protected void btnChange_Click(object sender, EventArgs e)
{
    myIframe.InnerHtml = "<h1>Contents Changed</h1>";
}

Quando ho eseguito questo .... il postback, ma non cambia il contenuto myIframe a tutti ... Che cosa sto facendo di sbagliato ??


Ho bisogno di fare questo a causa im 3D attuazione sicuro nel mio processo di checkout .. in sostanza:

1) cliente entra dati della carta di credito 2) modulo viene inviato, controlli con gateway di pagamento, se è richiesto 3D Secure. in tal caso, l'URL viene generato per le banche luogo sicuro per immettere le informazioni 3) creo una richiesta POST a questo URL, che contiene una lunga token di sicurezza, e un paio di altri pezzi di informazioni. posso entrare in possesso del codice HTML restituito da questa richiesta POST, e la necessità di visualizzarlo in un iFrame.

Ecco quello che la documentazione dice di fare:

<html>
<head>
<title>Please Authenticate</title>
</head>
<body onload="OnLoadEvent();">
<form name="downloadForm" action="https://mybank.com/vbyv/verify" method="POST">
<input type="hidden" name="PaReq" value="AAABBBBCCCCHHHHHH=">
<input type="hidden" name="TermUrl" value="https:// www. MyWidgits.Com/next.cgi">
<input type="hidden" name="MD" value="200304012012a">
</form>

<script language="Javascript"> <!-- function OnLoadEvent(){ document.downloadForm.target = "ACSframe"; document.downloadForm.submit(); } //--> </script>

<!-- MERCHANT TO FILL IN THEIR OWN BRANDING HERE -->
<iframe src="blank.htm" name="ACSframe" width="390" height="450" frameborder="0">
</iframe>
<!-- MERCHANT TO FILL IN THEIR OWN BRANDING HERE -->
</body>
</html>
È stato utile?

Soluzione

Si può provare questo:

protected void btnChange_Click(object sender, EventArgs e)
{
   myIframe.Attributes["src"] = "pathtofilewith.html"
}

o forse questo funzionerà anche:

protected void btnChange_Click(object sender, EventArgs e)
{
   myIframe.Attributes["innerHTML"] = "htmlgoeshere"
}

Altri suggerimenti

Non c'è nessun attributo innerHTML per un iFrame. Tuttavia, dal momento che HTML 5.0, c'è un nuovo srcdoc attributo. http://www.w3schools.com/tags/tag_iframe.asp

  

Valore: HTML_code

     

Descrizione: Specifica il contenuto HTML della pagina per mostrare nel