就是有页面中含有gridview等数据控件 绑定了显示的数据
如何将这个页面静态化啊??
显然,模板法 然后替换模板中的特定内容是行不通!
请问各位高手
还有其他的好方法吗我分数少
请见谅

解决方案 »

  1.   

    http://www.devedu.com/Doc/DotNet/AspNet/Url地址重写-利用HttpHander手工编译页面并按需生成静态HTML文件.aspxhttp://www.devedu.com/Doc/DotNet/AspNet/Url地址重写-利用HttpHander手工编译页面并按需生成静态HTML文件.aspx
      

  2.   

    创建一个WEB请求 发送到被请求页(即你的那个含GridView的动态页)处理 读取动态页数据流并根据数据流生成文件并保存
    示例代码如下:using System;
    using System.Net;
    using System.IO;
    using System.Text;
    using System.Text.RegularExpressions;namespace Polytele.Web
    {
         public class HttpRequestData
         {
             /// <summary>
             /// 将请求页面生成为字符串
             /// </summary>
             /// <param name="requestUriString">请求网址</param>
             /// <returns>string 请求页面的字符串变量</returns>
             public static string ToString(string requestUriString)
             {
                 HttpWebResponse response = GetHttpWebResponse(requestUriString);
                 if (response != null)
                 {
                     Encoding encoding = GetEncoding(response.CharacterSet);
                     using (StreamReader sr = new StreamReader(response.GetResponseStream(), encoding))
                     {
                         return sr.ReadToEnd();
                     }
                 }
                 return "";
             }         /// <summary>
             /// 将请求页面生成为静态页面
             /// </summary>
             /// <param name="requestUriString">请求网址</param>
             /// <param name="savePath">保存位置</param>
             /// <returns>bool 操作结果</returns>
             public static bool SaveToFile(string requestUriString, string savePath)
             {
                 HttpWebResponse response = GetHttpWebResponse(requestUriString);
                 if (response != null)
                 {
                     Encoding encoding = GetEncoding(response.CharacterSet);
                     string content = "";
                     using (StreamReader sr = new StreamReader(response.GetResponseStream(), encoding))
                     {
                         content = sr.ReadToEnd();
                     }
                     using (StreamWriter sw = new StreamWriter(savePath, false, encoding))
                     {
                         sw.Write(content);
                         sw.Flush();
                         return true;
                     }
                 }
                 return false;
             }         private static HttpWebResponse GetHttpWebResponse(string requestUriString)
             {
                 Regex regex = new Regex(@"^http://\s*", RegexOptions.IgnoreCase);
                 if (regex.IsMatch(requestUriString))
                 {
                     try
                     {
                         HttpWebResponse response = (HttpWebResponse)HttpWebRequest.Create(requestUriString).GetResponse();
                         return response;
                     }
                     catch (Exception){ }
                 }
                 return null;
             }         private static Encoding GetEncoding(string characterSet)
             {
                 string charset = characterSet;
                 if (charset == "ISO-8859-1")
                 {
                     charset = "gb2312";
                 }
                 return Encoding.GetEncoding(charset);
             }
         }
    }