除了母版页还有别的吗?

解决方案 »

  1.   

    母版页,frameset/iframe,js,CSS,用户控件,自定义控件
      

  2.   

    布局:模板页,用户控件
    样式:css
    脚本:写到js
      

  3.   

    可以新建一个 page基类, 把常用的代码方法,写在这个类中 如下: public class BasePage : System.Web.UI.Page
        {
            public BasePage()
                : base()
            { }
            protected override void Render(HtmlTextWriter writer)
            {
                if (writer is System.Web.UI.Html32TextWriter)
                {
                    writer = new FormFixerHtml32TextWriter(writer.InnerWriter);
                }
                else
                {
                    writer = new FormFixerHtmlTextWriter(writer.InnerWriter);
                }
                base.Render(writer);
            }
            /// <summary>
            /// 弹出消息框并且转向到新的URL
            /// </summary>
            /// <param name="message">消息内容</param>
            /// <param name="toURL">连接地址</param>
            public void AlertAndRedirect(string message, string toURL)
            {            string js = "<script language=javascript>alert('{0}');window.location.replace('{1}')</script>";
                HttpContext.Current.Response.Write(string.Format(js, message, toURL));        }
           
            protected override void SavePageStateToPersistenceMedium(object state)
            {
                string value = new ObjectStateFormatter().Serialize(state);
                string viewStateID = (DateTime.Now.Ticks + (long)this.GetHashCode()).ToString(); //产生离散的id号码
                string fn = Path.Combine(this.Request.PhysicalApplicationPath, @"~/App_Data/ViewState/" + viewStateID);
                //ThreadPool.QueueUserWorkItem(File.WriteAllText(fn, value));
                File.WriteAllText(fn, value);
                Cache.Insert(viewStateID, value);
                base.SavePageStateToPersistenceMedium(viewStateID);
            }
           */  
            public void PageAlert(string key, string message)
            {
                message = DeleteUnVisibleChar(message);
                string js = @"<Script language='JavaScript'>
                alert('" + message + "');</Script>";
                Page.RegisterStartupScript(key, js);
            }
            // 弹出窗口信息,并关闭
            public void AlertAndClose(string key, string message)
            {
                message = DeleteUnVisibleChar(message);
                string js = @"<Script language='JavaScript'>
                alert('" + message + "');window.close();</Script>";
                Page.RegisterStartupScript(key, js);
            }
            // 删除不可见字符
            public string DeleteUnVisibleChar(string sourceString)
            {
                System.Text.StringBuilder sBuilder = new System.Text.StringBuilder(131);
                for (int i = 0; i < sourceString.Length; i++)
                {
                    int Unicode = sourceString[i];
                    if (Unicode >= 16)
                    {
                        sBuilder.Append(sourceString[i].ToString());
                    }
                }
                return sBuilder.ToString();
            }
            //转到链接页
            public void URLTo(string url, string target)
            {
                Response.Write("<script>window.open('" + url + "','" + target + "');</script>");
            }
           ...............其它页面 改一下 继承这个页面,就可以继承里面的方法
    如下:public partial class bbs_TopicDetail : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
                        
         }
        //提交回复
        protected void imgReply_ServerClick(object sender, ImageClickEventArgs e)
        {
            if (CheckLogin() == true)
            {
                string username = GetUserName();
                UserID = userbll.GetIdByUname(username);
            }
            else
            {
                //AlertAndRedirect("请登录", "../Login.aspx");
                PageAlert("", "请登录");  //基类方法
                return;
            }
            if (Request.Form.Get("hiddenTestN").Equals(GetToken()))
            {
                if (txtEditor.Value.Trim().Length < 5 || txtEditor.Value.Trim().Length > 2000)
                {
                    PageAlert("notComment1", "回复字数不要少于5字符或大于2000字符!");//基类方法                return;
                }
                string ReplyContent = getSpecialCharUBB(txtEditor.Value.ToString());
                string ip = GetRealIP();
                topicbll.ReplyTopicById(TopicId, UserID, ReplyContent, ip);
                GetReplyTopic(TopicId);
                txtEditor.Value = null;
                SetToken();//别忘了最后要更新Session中的标志   
            }
            else
            {
                PageAlert("", "重复提交");//基类方法        }  
        }