建议楼住看看asp.net 2.0的MasterPage

解决方案 »

  1.   

    频道、左栏、右栏是通过数据库动态生成的,以前用的是asp,想看看用asp.net如何实现。有实际开发代码例子的朋友,请多多联系,谢谢。
      

  2.   

    请syeerzy别介意,我别无他意,我接收意见,在ASP中,用下面框架实现:
    <frameset rows="80,*" cols="*" frameborder="no" border="0" framespacing="0">
      <frame src="" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
      <frameset cols="80,*" frameborder="no" border="0" framespacing="0">
        <frame src="" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
        <frame src="" name="mainFrame" id="mainFrame" title="mainFrame" />
      </frameset>
    </frameset>
    通过对frame的src,就可以实现我上面说的功能,在ASP.net中,不用框架,如何实现呢?初学者,各位请赐教。
      

  3.   

    用户控件就是一个后缀名为ascx的页面,只不过它不能被直接访问。必须嵌套在aspx页中。
      

  4.   

    既然能够用frame可以完成,为什么还要做其它的呢,框架中传参数,也就是夸页面传值.是两个不同的页面间传递参数
      

  5.   

    各位见笑,用用户控件的话,比如做了三个用户控件:TopUc1,LeftUc2,RightUc3,在TopUc1做一个DropDownList,做几个选项,不同的选项的有不同的超连接,那么,如何在LeftUc2中根据DropDownList的选择,显示DropDownList的URL呢?请赐教,谢谢。
      

  6.   

    看你的问题陈述,似乎还不摸控件设计的门,所以这里我只是简单说一下应该知道的基本知识:1. 给用户控件LeftUc2定义事件,其中参数可以从EventArguments继承,并且增加一个属性Target用来通知客户当前选择了DropDownList的什么值。在DropDownList的SelectedIndexChanged事件中用户控件的这个事件,委托客户处理。2. 在页面上拖入TopUc1、LeftUc2,和一个PlaceHolder。3. 页面使用一个ViewState项记录上述DropDownList最后一次选择的值。如果没有选择过,就给一个默认值。4. 页面的page_load中,根据最后DropDownList的值,动态装入不同的RightUc。注意,不是你说的RightUc3,或者说你的RigthUc3只是上层空泛的接口,内部还要动态装载不同的RightUc控件。这个RightUc类型控件可能有上百个,总之是动态的,而不是一个控件。5. 注册LeftUc2的上述事件,将参数中暴露出来的DropDownList的值记入上述页面状态项。并且记录下本次页面需要更新(在页面上定义一个private bool类型变量即可)。6. 在page_PreRender事件中,如果页面需要更新,则删除原来的并重新装入RightUc控件。
    用户控件与框架的不同在于:用户控件是动态的,用在需要强大和灵活的地方。例如GridView中的模板中可以放入用户控件,在运行时每一行的每一列中的某个东西其实就是这个用户控件产生的。可见,此时使用IFrame是不可能的。至于你说的框架方法,用控件来实现是小菜一碟(特别是利用Ajax的交互设计思路下)。不过这需要对asp.net组件设计技术真正入门了以后。基本上,csdn论坛的水平刚刚能够进行组件设计。90%的人还不会正确设计组件,更不要或掌握事半功倍的基本方法。
      

  7.   

    组件的好处是你可以把ui交互子程序承包出去,然后哪个页面或者其它组件中需要这个子程序,就直接放进这个组件,再增加几条事件处理语句就好了,跟你使用TextBox、Button、GridView的意思一样,只不过你是把更加面向客户需要的东西封装起来成了工具。一个页面,可以只是一个组件,也可以临时由多个组件拼凑成一个集成的大画面。asp.net软件开发项目到一定自由的程度,所有开发工作都是组件,而不去开发页面。页面只是发布产品时临时凑一个,或者写一个通用的页面根据配置参数动态装入组件即可。
      

  8.   

    如sp1234所说,我对控件设计的还没有摸到门,我的QQ522797821,请问sp1234和对该类问题感兴趣的朋友联系,可否?
      

  9.   

    母版页中顶部和左边各一个用户控件,其他的页面都调用这个母版页,我的母版页代码(不知道怎么上图):
    <%@ Master Language="C#" AutoEventWireup="true" CodeFile="Main.master.cs" Inherits="Main" %><%@ Register src="UserControls/LeftMenu.ascx" tagname="LeftMenu" tagprefix="uc1" %>
    <%@ Register src="UserControls/Top.ascx" tagname="Top" tagprefix="uc2" %><!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="Head1" runat="server">
        <link rel="Stylesheet" type="text/css" href="css/common.css" />
        <script src="Scripts/jquery.js" type="text/javascript"></script>
        <script src="Scripts/layout.js" type="text/javascript"></script>
        <asp:ContentPlaceHolder id="head" runat="server">
        </asp:ContentPlaceHolder>
         
         <script language="javascript" type="text/javascript">
             function setstatus() {
                 window.status = "All Rights Reserved , Copyright (C) 2010 ,CMS IT";
                  }   
        
        </script> 
        
    </head>
    <body>
        <form id="form1" runat="server">
       
        
        <div id="divOpaque">
        </div>    
        <div class="headtop">
            <uc2:Top ID="Top2" runat="server" />
        </div>
        <div id="contentArea">
            <div id="ra" class="resizableArea">
                <div id="raLeft" class="leftSection">
                    <uc1:LeftMenu ID="LeftMenu2" runat="server" />
                </div>            
                <div id="raSplitter" class="splitter" ondblclick="ra_OpenCollapse('raSplitter','raLeft');"
                    onmouseout="HighlightSplitterBar(this.id,1);" onmouseover="HighlightSplitterBar(this.id,0);"
                    onmouseup="ra_resizeStop()" onmousedown="ra_resizeStart(event,this,'raLeft')"
                    title="Click and drag to resize.">
                </div>
                <div id="raRight" class="rightSection">    
                    <div>
            <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
            
            </asp:ContentPlaceHolder>
                    </div>
                </div>
            </div>
        </div>
        </form>
    </body>
    </html>