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>
包含 Div "panelPatientRegistration" 的显示属性设置为 none。iframe就在里面,它永远不会被渲染。
收集所有查询字符串数据并将它们保存在隐藏字段中,并编写 javascript 函数,通过使用隐藏字段将值作为查询字符串传递来更改 Iframe 的 src。
<script>
function changeIframSrc(src) {
document.getElementById('<%=iframePatientRegistration.ClientID %>').src = src;
}
</script>
我在代码中看到的问题是,您正在单击页面回发的服务器端按钮,即使您正在更改 iframe 的 SRC,但由于回发而再次创建控件。 因此,使用上面的 JavaScript 函数调用该特定页面并使用隐藏字段传递查询字符串来解决问题。