我正在尝试在页面上单击按钮时更新iFrame的来源。然而,似乎没有发生任何事情......
.ASPX:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<div class="accountInfo">
<p class="submitButton">
<asp:Button ID="ValidateButton" runat="server" Text="Validate" OnClick="SubmitSponsor" />
</p>
</div>
<iframe runat="server" id="PayPalFrame" height="150px" width="100%" frameborder="0"></iframe>
</ContentTemplate>
</asp:UpdatePanel>
代码背后:
protected void SubmitSponsor(object sender, EventArgs e)
{
var driver = new Driver();
var isvalid = driver.IsAppValid(URL.Text, APILINK, Connstring);
if (isvalid)
{
PayPalFrame.Attributes.Add("src", "http://www.google.com");
URLInvalid.Visible = false;
}
}
我也尝试过:
PayPalFrame.Attributes["src"] = "http://www.google.com";
但仍然没有。
答案 0 :(得分:1)
我已经测试了您的代码,它适用于示例项目:
ASPX:
<form id="form1" runat="server">
<div>
<asp:ScriptManager runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<div class="accountInfo">
<p class="submitButton">
<asp:Button ID="ValidateButton" runat="server" Text="Validate" OnClick="SubmitSponsor" />
</p>
</div>
<iframe runat="server" id="PayPalFrame" height="150px" width="100%" frameborder="0">
</iframe>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
代码隐藏:
public partial class UpdatePanelIFrameTester : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void SubmitSponsor(object sender, EventArgs e)
{
bool isvalid = true;
if (isvalid)
{
PayPalFrame.Attributes.Add("src", "http://www.ironworks.com");
}
}
}
我会检查您的代码并确保没有任何内容导致您的网页刷新/执行完整的回发(我更改了网址,因为谷歌不允许您在标准条件下在iframe中查看它。)
答案 1 :(得分:0)
我相信您必须删除 src属性,然后重新添加它才能生效。不知道为什么会这样,但我记得上次使用更新面板时这样做了。也许是因为src属性总是存在?
无论如何,这里有一些示例代码:how to change the src attribute in iframe。