UpdatePanel中的iFrame未更新

时间:2012-09-11 16:51:12

标签: c# asp.net ajax webforms

我正在尝试在页面上单击按钮时更新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";但仍然没有。

2 个答案:

答案 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