小弟手头现有一项目原来用母版页来控制整体风格,现在想在该母版页处加树形导航,并且根据内容页的功能不同显示不同 的树形导航。考虑到母版页每次都要刷新而且还有大量的重定向情况,所有打算在masterpage中嵌套一个iframe用来放导航树,求各位给提供点思路,如果有例子的话就更好了。谢谢各位!

解决方案 »

  1.   

    应该是这样的,如果只是刷新的话,用ajax可以处理,只是重定向的这种处理不了,我说的有问题,请见谅
      

  2.   

    <iframe id="x" runat=server></iframe>这样在服务器端就可以动态设置src了x.Attributes.Add("src","动态的aspx")
      

  3.   

    我昨天试了一下,在masterpage里有若干个选项卡,选中一个通过window.iframe的id.location.href来跳转,如果加上runat=server里头取不到指定的页码,如果去了,里面能取到,外面一片空白,查看源代码是有内容的
      

  4.   

    我发现把iframe放到masterpage其他内容块的后面(如div),这样的话别的部分就能显示出来了,只是我的iframe的src写死的话,iframe里面能有值,如果动态用iframe的名称.location.href或iframe的名称.src来跳转的话iframe里面没有值了。
      

  5.   

    无刷新使用updatepanel等
    <iframe id="right"..></iframe>
    onclick中window.frames["right"].src="";
      

  6.   

    如果动态用iframe的名称.location.href或iframe的名称.src来跳转的话iframe里面没有值了。
    不可能的,除非你的方法是错误的,这样写<iframe name="right"..></iframe>
    onclick中onclick='window.frames["right"].location.href="xx.aspx"';注意是name属性
      

  7.   

    我给你写个简单 的例子
    MasterPage.master的内容<%@ Master Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server"></script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title></title>
      <asp:ContentPlaceHolder ID="head" runat="server">
      </asp:ContentPlaceHolder>
    </head>
    <body>
      <form id="form1" runat="server">
      母板页
      <iframe id="mxh" name="mxh" runat="server"></iframe>
      <div>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
        </asp:ContentPlaceHolder>
      </div>
      </form>
    </body>
    </html>
    内容页的内容
    <%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/MasterPage.master" %><asp:Content ID="x" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
      内容页
    </asp:Content>
    <script runat="server">
      protected void Page_Load(object sender, EventArgs e)
      {
        String a = Request.QueryString["id"];
        if (a != null)
        {
          HtmlGenericControl mxh = Page.Master.FindControl("mxh") as HtmlGenericControl;
          if (a == "1")
          {
            mxh.Attributes.Add("src", "http://dotnet.aspx.cc/");
          }
          else if (a == "2")
          {
            mxh.Attributes.Add("src", "http://www.g.cn/");
          }
        }
      }
    </script>你浏览器
    http://localhost:3556/c3/Default2.aspx?id=2
    http://localhost:3556/c3/Default2.aspx?id=1
    就可以测试出效果了
      

  8.   

    谢谢上面的例子,我现在需要在母版页里添加一个选项卡,点击选项卡的时候迁移内容页,同时也判断显示哪一个导航树,我现在的导航树都是写成一个独立的页面,这样后台和前台都试了,仍然不能在frame里显示出导航树的页面
      

  9.   

    你要搞清楚,页面的结构,是否有frame嵌套,单纯的一个页面是没有没问题的,
      

  10.   

    我想就算是iframe嵌套在masterpage里,masterpage里的选项卡引起重定向,iframe还是要重新加载的,此路不通啊。
      

  11.   

    还想再提一个问题,现在我要是全部改成frame框架,怎么来控制整个网站的主题和语言风格呢?
      

  12.   

    教程
    http://msdn.microsoft.com/zh-cn/library/ykzx33wh.aspx