我正在用C#和Telerik Ajax Control开发ASP.NET 3.5的Web应用程序。我的母版页中有一个iFrame。应用程序动态加载iFrame中的其他页面,并在页面加载时动态调整iFrame高度。我在我的页面中使用了RadScriptManager,RadAjaxPannel,RadAjaxLoadingPannel。问题是当ajax“回调”页面时,iFrame高度不能动态调整。动态iFrame高度不适用于Ajax!
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MastetPage.master.cs" Inherits="MastetPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head" runat="server">
<title></title>
<script type="text/javascript" language="JavaScript">
function setSize(elem) {
var the_height;
the_height = elem.contentWindow.document.body.scrollHeight;
elem.height = the_height; // Its works fine in IE, Chrome, Safari but not work in FF and opera
}
</script>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body id="Page_Master" runat="server" >
<form id="formMasterPage" method="post" runat="server">
<telerik:RadScriptManager ID="RadScriptManager1" runat="server" AsyncPostBackTimeout="500">
</telerik:RadScriptManager>
<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" Height="100%" Width="100%" >
<div id="MainPage">
<div class="Header">
</div>
<div id="ContentHolder">
<div id="Content">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
<iframe id="IFrameMaster" name="IFrameMaster" scrolling="auto" width="998px" style=" min-height:500px;" allowtransparency="true" frameborder="0" runat="server" >
</iframe>
</div>
</div>
<div id="Footer">
</div>
</div>
</telerik:RadAjaxPanel>
</form>
</body>
</html>
服务器端代码:
// This code used in Page_Load Method and other methods depends on condition.
IFrameMaster.Attributes["src"] = "UIHome.aspx";
// This line used only Page_Load Method
IFrameMaster.Attributes.Add("onload", "javascript:setSize(this)");
,这是什么问题该如何解决?
感谢 马里兰州纳西尔·乌丁
它在第一页加载时工作。但其他网页无法正常工作.. – Nasir 2010-10-13 16:01:40