0

ページ上でボタンがクリックされたときに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";それでも何もありません。

4

2 に答える 2

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でそれを見ることができないのでURLを変更しました)。

于 2012-09-11T17:44:54.273 に答える
0

これを機能させるには、src属性を削除してから再度追加する必要があると思います。理由はわかりませんが、前回更新パネルを操作したときに行ったことを覚えています。おそらく、src属性が常にすでに存在しているためですか?

とにかく、ここにいくつかのサンプルコードがあります: iframeのsrc属性を変更する方法

于 2012-09-11T17:26:01.097 に答える