我用了menu和ifame,前台就是有方法让iframe高度自适应,希望后台menuclick时给iframe的src赋上值,而不是直接赋值,加载太慢。
<div class="tab">
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:Menu ID="Menu1" StaticMenuItemStyle-CssClass="smis" StaticMenuItemStyle-BorderStyle="Solid"
StaticMenuItemStyle-BorderWidth="1" StaticMenuItemStyle-BorderColor="#9bb9f6"
StaticMenuItemStyle-BackColor="#ffffff" StaticMenuItemStyle-Width="70px" StaticMenuItemStyle-Height="20px"
StaticMenuItemStyle-HorizontalPadding="15px" StaticSelectedStyle-BorderStyle="Solid"
StaticSelectedStyle-BorderWidth="1" StaticSelectedStyle-BorderColor="#ffffff"
StaticSelectedStyle-BackColor="#ffffff" StaticSelectedStyle-Width="70px" StaticSelectedStyle-Height="30px"
StaticSelectedStyle-HorizontalPadding="15px"
StaticSelectedStyle-CssClass="selectstyle"
DynamicSelectedStyle-CssClass="selectstyle"
CssClass="tabli" runat="server"
Orientation="Horizontal" OnMenuItemClick="Menu1_MenuItemClick">
<Items>
<asp:MenuItem Selected="True" Text=" 我的待办文件 " Value="1" Selectable="true">
</asp:MenuItem>
<asp:MenuItem Selected="false" Text=" 我的已办文件 " Value="2" Selectable="true">
</asp:MenuItem>
<asp:MenuItem Selected="false" Text=" 待办文件 " Value="3" Selectable="true">
</asp:MenuItem>
<asp:MenuItem Selected="false" Text=" 已办文件 " Value="4" Selectable="true">
</asp:MenuItem>
<asp:MenuItem Selected= "false" Text=" 草稿箱 " Value="5" Selectable="true"></asp:MenuItem>
<asp:MenuItem Selected="false" Text=" 拟 稿 " Value="6" Selectable="true">
</asp:MenuItem>
<%--<asp:MenuItem Selected= "false" Text="已发公文" Value="3" Selectable="true"></asp:MenuItem>--%>
</Items>
</asp:Menu>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="tabbottom">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
<asp:View ID="View1" runat="server">
<iframe id="Iframe1" name="Iframe1" width="100%" frameborder="no"
onload="iFrameHeight('Iframe1')" src="/Tasks/mefp/Workflows/MyTask/ListFile.aspx?IsMine=1"></iframe>
</asp:View> <asp:View ID="View2" runat="server">
<iframe id="Iframe2" name="Iframe2" width="100%" frameborder="no"
onload="iFrameHeight('Iframe2')" src="/Tasks/mefp/Workflows/MyTaskHistory/ListFile.aspx?IsMine=1"></iframe>
</asp:View> <asp:View ID="View3" runat="server">
<iframe id="Iframe3" name="Iframe3" width="100%" frameborder="no"
onload="iFrameHeight('Iframe3')" src="/Tasks/mefp/Workflows/MyTask/ListFile.aspx?IsMine=0"></iframe>
</asp:View> <asp:View ID="View4" runat="server">
<iframe id="Iframe4" name="Iframe4" width="100%" frameborder="no"
onload="iFrameHeight('Iframe4')" src="/Tasks/mefp/Workflows/MyTaskHistory/ListFile.aspx?IsMine=0"></iframe>
</asp:View>
<asp:View ID="View5" runat="server">
<iframe id="Iframe5" name="Iframe5" width="100%" frameborder="no"
onload="iFrameHeight('Iframe5')" src="/workflows/mefp/workflows/MyDrafts/List.aspx"></iframe>
</asp:View>
<asp:View ID="View6" runat="server">
<iframe id="Iframe6" width="100%" style="overflow: hidden;" frameborder="no"
onload="iFrameHeight('Iframe6')" src="<%=strNewUrl %>"></iframe>
</asp:View>
<%--<asp:View ID="View3" runat="server">
<iframe id="Iframe7" width="100%" height="940px" style="overflow: hidden;" frameborder="no"
runat="server" src="/workflows/mefp/workflows/StartCenter/List_newFile.aspx?WFTemplateId=4526efef-2a8d-4055-afcd-dc9e063de25e">
</iframe>
</asp:View>--%>
</asp:MultiView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Menu1" EventName="MenuItemClick" />
</Triggers>
</asp:UpdatePanel>
</div><script type="text/javascript" language="javascript">
function iFrameHeight(id) {
var ifm = document.getElementById(id);
var subWeb = document.frames ? document.frames[id].document : ifm.contentDocument;
if (ifm != null && subWeb != null) {
ifm.height = subWeb.body.scrollHeight;
}
}
</script>protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
{
MenuItem item = e.Item;
switch (Menu1.SelectedValue)
{
case "1"://这个值是在Menu中加入Item时设定的
{
MultiView1.ActiveViewIndex = 0;
if (item.Text == "我的待办文件")
item.Selected = true;
break;
}
case "2":
{
MultiView1.ActiveViewIndex = 1;
if (item.Text == "我的已办文件")
item.Selected = true;
break;
}
case "3":
{
MultiView1.ActiveViewIndex = 2;
if (item.Text == "待办文件")
item.Selected = true;
break;
}
case "4":
{
MultiView1.ActiveViewIndex = 3;
if (item.Text == "已办文件")
item.Selected = true;
break;
}
case "5":
{
MultiView1.ActiveViewIndex = 4;
if (item.Text == "草稿箱")
item.Selected = true;
break;
}
case "6":
{
MultiView1.ActiveViewIndex = 5;
if (item.Text == "拟稿")
item.Selected = true;
break;
}
default:
break;
}
}
<div class="tab">
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:Menu ID="Menu1" StaticMenuItemStyle-CssClass="smis" StaticMenuItemStyle-BorderStyle="Solid"
StaticMenuItemStyle-BorderWidth="1" StaticMenuItemStyle-BorderColor="#9bb9f6"
StaticMenuItemStyle-BackColor="#ffffff" StaticMenuItemStyle-Width="70px" StaticMenuItemStyle-Height="20px"
StaticMenuItemStyle-HorizontalPadding="15px" StaticSelectedStyle-BorderStyle="Solid"
StaticSelectedStyle-BorderWidth="1" StaticSelectedStyle-BorderColor="#ffffff"
StaticSelectedStyle-BackColor="#ffffff" StaticSelectedStyle-Width="70px" StaticSelectedStyle-Height="30px"
StaticSelectedStyle-HorizontalPadding="15px"
StaticSelectedStyle-CssClass="selectstyle"
DynamicSelectedStyle-CssClass="selectstyle"
CssClass="tabli" runat="server"
Orientation="Horizontal" OnMenuItemClick="Menu1_MenuItemClick">
<Items>
<asp:MenuItem Selected="True" Text=" 我的待办文件 " Value="1" Selectable="true">
</asp:MenuItem>
<asp:MenuItem Selected="false" Text=" 我的已办文件 " Value="2" Selectable="true">
</asp:MenuItem>
<asp:MenuItem Selected="false" Text=" 待办文件 " Value="3" Selectable="true">
</asp:MenuItem>
<asp:MenuItem Selected="false" Text=" 已办文件 " Value="4" Selectable="true">
</asp:MenuItem>
<asp:MenuItem Selected= "false" Text=" 草稿箱 " Value="5" Selectable="true"></asp:MenuItem>
<asp:MenuItem Selected="false" Text=" 拟 稿 " Value="6" Selectable="true">
</asp:MenuItem>
<%--<asp:MenuItem Selected= "false" Text="已发公文" Value="3" Selectable="true"></asp:MenuItem>--%>
</Items>
</asp:Menu>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="tabbottom">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
<asp:View ID="View1" runat="server">
<iframe id="Iframe1" name="Iframe1" width="100%" frameborder="no"
onload="iFrameHeight('Iframe1')" src="/Tasks/mefp/Workflows/MyTask/ListFile.aspx?IsMine=1"></iframe>
</asp:View> <asp:View ID="View2" runat="server">
<iframe id="Iframe2" name="Iframe2" width="100%" frameborder="no"
onload="iFrameHeight('Iframe2')" src="/Tasks/mefp/Workflows/MyTaskHistory/ListFile.aspx?IsMine=1"></iframe>
</asp:View> <asp:View ID="View3" runat="server">
<iframe id="Iframe3" name="Iframe3" width="100%" frameborder="no"
onload="iFrameHeight('Iframe3')" src="/Tasks/mefp/Workflows/MyTask/ListFile.aspx?IsMine=0"></iframe>
</asp:View> <asp:View ID="View4" runat="server">
<iframe id="Iframe4" name="Iframe4" width="100%" frameborder="no"
onload="iFrameHeight('Iframe4')" src="/Tasks/mefp/Workflows/MyTaskHistory/ListFile.aspx?IsMine=0"></iframe>
</asp:View>
<asp:View ID="View5" runat="server">
<iframe id="Iframe5" name="Iframe5" width="100%" frameborder="no"
onload="iFrameHeight('Iframe5')" src="/workflows/mefp/workflows/MyDrafts/List.aspx"></iframe>
</asp:View>
<asp:View ID="View6" runat="server">
<iframe id="Iframe6" width="100%" style="overflow: hidden;" frameborder="no"
onload="iFrameHeight('Iframe6')" src="<%=strNewUrl %>"></iframe>
</asp:View>
<%--<asp:View ID="View3" runat="server">
<iframe id="Iframe7" width="100%" height="940px" style="overflow: hidden;" frameborder="no"
runat="server" src="/workflows/mefp/workflows/StartCenter/List_newFile.aspx?WFTemplateId=4526efef-2a8d-4055-afcd-dc9e063de25e">
</iframe>
</asp:View>--%>
</asp:MultiView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Menu1" EventName="MenuItemClick" />
</Triggers>
</asp:UpdatePanel>
</div><script type="text/javascript" language="javascript">
function iFrameHeight(id) {
var ifm = document.getElementById(id);
var subWeb = document.frames ? document.frames[id].document : ifm.contentDocument;
if (ifm != null && subWeb != null) {
ifm.height = subWeb.body.scrollHeight;
}
}
</script>protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
{
MenuItem item = e.Item;
switch (Menu1.SelectedValue)
{
case "1"://这个值是在Menu中加入Item时设定的
{
MultiView1.ActiveViewIndex = 0;
if (item.Text == "我的待办文件")
item.Selected = true;
break;
}
case "2":
{
MultiView1.ActiveViewIndex = 1;
if (item.Text == "我的已办文件")
item.Selected = true;
break;
}
case "3":
{
MultiView1.ActiveViewIndex = 2;
if (item.Text == "待办文件")
item.Selected = true;
break;
}
case "4":
{
MultiView1.ActiveViewIndex = 3;
if (item.Text == "已办文件")
item.Selected = true;
break;
}
case "5":
{
MultiView1.ActiveViewIndex = 4;
if (item.Text == "草稿箱")
item.Selected = true;
break;
}
case "6":
{
MultiView1.ActiveViewIndex = 5;
if (item.Text == "拟稿")
item.Selected = true;
break;
}
default:
break;
}
}
<iframe id="Iframe1" name="Iframe1" width="100%" frameborder="0" runat="server"
src=""></iframe>
后台:
Iframe1.Attributes.Add("src", "/Tasks/mefp/Workflows/MyTask/ListFile.aspx?IsMine=1");
Iframe1.Attributes.Add("onload", "javascript:iFrameHeight('Iframe1');");