ASPX 页面未在 iframe 中加载,单击按钮

本文关键字:加载 单击 按钮 iframe ASPX | 更新日期: 2023-09-27 18:22:17

<asp:Button runat="server" ID="hiddenPopupPatientRegistration" Style="display: none" />
    <asp:ModalPopupExtender ID="popupPatientRegistration" runat="server" PopupControlID="panelPatientRegistration"
        TargetControlID="hiddenPopupPatientRegistration" BackgroundCssClass="cssmodalbackground"
        BehaviorID="modalBehaviour" CancelControlID="btnClose">
    </asp:ModalPopupExtender>
    <div id="panelPatientRegistration" class="cssmodalpopup" style="display: none">
        <iframe id="iframePatientRegistration"  class="csstable" runat="server" width="600px"
            height="485px" scrolling="auto"></iframe>
        <table>
            <tr>
                <td align="right">
                    <asp:Button ID="btnClose" runat="server" CssClass="cssbutton" Text="Close" />
                </td>
            </tr>
        </table>
    </div>
    protected void btn_Click(object sender, EventArgs e)
    {
          iframePatientRegistration.Attributes["src"] = "Patient_Registration.aspx?flowType=" + flowType + "&fromTime=" + hidFromTime.Value + "&toTime=" + hidToTime.Value + "&acqModalityID=" + hidAcqModalityID.Value + "&schLocationID=" + ddlScheduledProcedureStepLocation.SelectedValue;
            popupPatientRegistration.Show();
    }

我必须在模式弹出扩展器控件中显示aspx页面。 并通过查询字符串传递值 但是ASPX页面不会在Iframe.code后面加载。

当我看到 html 源代码然后得到这两行时

<HTML>
</HTML>

ASPX 页面未在 iframe 中加载,单击按钮

包含 Div "panelPatientRegistration" 的显示属性设置为 none。iframe就在里面,它永远不会被渲染。

收集所有查询字符串数据并将它们保存在隐藏字段中,并编写 javascript 函数,通过使用隐藏字段将值作为查询字符串传递来更改 Iframe 的 src。

    <script>
        function changeIframSrc(src) {
            document.getElementById('<%=iframePatientRegistration.ClientID %>').src = src;
        }
    </script>

我在代码中看到的问题是,您正在单击页面回发的服务器端按钮,即使您正在更改 iframe 的 SRC,但由于回发而再次创建控件。 因此,使用上面的 JavaScript 函数调用该特定页面并使用隐藏字段传递查询字符串来解决问题。