1.我是新手,关于动态页面生成静态页面原理不理解,比如一个.aspx文件,要对数据进行添加,删除等操作!如果生成静态页面后,那个这个被生成的静态页面是怎么样对数据进行操作,怎么对数据库中的表进行操作的呢?2.所以我个人理解是这样,当一个.aspx文件对数据进行操作完后,有一个显示操作成功后的结果页面,而这个页面才是真正的被生成静态页面。。
3.下面有一个例子,是在有一个数据源控件的情况下显示数据,麻烦哪个帮忙看看怎么样生成静态页面,这样有助于我理解
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            <Columns>
                <%#Eval("Id")>
                <%#Eval("Name")>
               <%#Eval("Message")>            </Columns>
        </asp:GridView>
后台:
 protected void Page_Load(object sender, EventArgs e)
        {
           // 数据绑定
        }

解决方案 »

  1.   

    1 生成静态页面,那就是一个静态页面了。就不能操作了。对于还有些简单的功能,可以通过AJAX实现
    2 所以你理解错误了
    3 不是高负载,不用生成静态页面。楼主不要没事找事
      

  2.   

    生成静态页的方式大致分为两种:模板替换和直接输出。模板替换是预先建立html文件,在此文件中的动态数据部分用自定义的标记“占位”,生成静态页时替换这部分占位符。直接输出则是对自己网站的动态页发送个web请求,获取其响应后存入html文件中,类似于抓取网页技术,只不过抓取的是自己的网页。静态页中可以用ajax,也可以局部嵌套iframe(里面是动态页面),实现部分动态的功能。另外,服务器端可以专门建立一个动态页面,根据来自静态页的ajax请求传来的不同参数,处理不同的动态功能:比如对数据库操作。你给出的例子用上述两种生成静态页的方法都可以。
      

  3.   

    public static bool CreatHtmlPage(string[] strNewsHtml, string[] strOldHtml, string strModeFilePath, string strPageFilePath)
            {
                bool Flage = false;
                StreamReader ReaderFile = null;
                StreamWriter WrirteFile = null;
                //修改mode.htm到inc目录下
               strModeFilePath = "../inc/" + strModeFilePath;
                string FilePath = HttpContext.Current.Server.MapPath(strModeFilePath);
                Encoding Code = Encoding.GetEncoding("gb2312");
                string strFile = string.Empty;
                try
                {
                    ReaderFile = new StreamReader(FilePath, Code);
                    strFile = ReaderFile.ReadToEnd();            }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    ReaderFile.Close();
                }
                try
                {
                    int intLengTh = strNewsHtml.Length;
                    for (int i = 0; i < intLengTh; i++)
                    {
                        strFile = strFile.Replace(strOldHtml[i], strNewsHtml[i]);
                    }
                    WrirteFile = new StreamWriter(HttpContext.Current.Server.MapPath(strPageFilePath), false, Code);
                    WrirteFile.Write(strFile);
                    Flage = true;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {                WrirteFile.Flush();
                    WrirteFile.Close();
                }
                return Flage;
            }
            public static bool UpdateHtmlPage(string[] strNewsHtml, string[] strStartHtml, string[] strEndHtml, string strHtml)
            {
                bool Flage = false;
                StreamReader ReaderFile = null;
                StreamWriter WrirteFile = null;
                string FilePath = HttpContext.Current.Server.MapPath(strHtml);
                Encoding Code = Encoding.GetEncoding("gb2312");
                string strFile = string.Empty;
                try
                {
                    ReaderFile = new StreamReader(FilePath, Code);
                    strFile = ReaderFile.ReadToEnd();            }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    ReaderFile.Close();
                }
                try
                {
                    int intLengTh = strNewsHtml.Length;
                    for (int i = 0; i < intLengTh; i++)
                    {
                        int intStart = strFile.IndexOf(strStartHtml[i]) + strStartHtml[i].Length;
                        int intEnd = strFile.IndexOf(strEndHtml[i]);
                        string strOldHtml = strFile.Substring(intStart, intEnd - intStart);
                        strFile = strFile.Replace(strOldHtml, strNewsHtml[i]);
                    }
                    WrirteFile = new StreamWriter(FilePath, false, Code);
                    WrirteFile.Write(strFile);
                    Flage = true;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {                WrirteFile.Flush();
                    WrirteFile.Close();
                }
                return Flage;
            }
    如何生成静态页面的五种方案