我看到一些生成静态页的方式.
1.采用孟子E章的办法 ,在aspx页中写
protected override void Render( HtmlTextWriter writer )
{
System.IO.StringWriter html = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
base.Render(tw);
System.IO.StreamWriter sw;
sw = new System.IO.StreamWriter(Server.MapPath("a.htm"), false, System.Text.Encoding.Default);
sw.Write(html.ToString());
sw.Close();
tw.Close();
Response.Write(html.ToString());
}
2.采用html模板,用变量替换的办法
我原来是使用1方法,但是我发现有问题了,我的主页A.html是静态页.也就是由B.aspx生成的A.html页.
现在A.html页要根据数据更新.就是当数据库中有一条数据更新了.A.html要马上生成.我以前是用在用户提交数据之后,使用window.open(B.aspx)在js中打开B.aspx生成的A.html页的,但是我发现window.open(B.aspx)不总是管用.而且我对js也不熟悉.怀疑它是否执行(因为我发现用户提交数据A.html有时候并没有更新)
头疼!
我想法这个过程移到后台来处理.也就是说能不能提交数据之后在后台调用一个方法.类似
WebFormA a=new WebFormA();
//...给a中的这个数据变量付值等等
string Html=a.Render();//生成
SaveHTML()!!!
可以吗??
别跟我说aspx的无状态哦.我知道的,有没有可能了.重载render???
1.采用孟子E章的办法 ,在aspx页中写
protected override void Render( HtmlTextWriter writer )
{
System.IO.StringWriter html = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
base.Render(tw);
System.IO.StreamWriter sw;
sw = new System.IO.StreamWriter(Server.MapPath("a.htm"), false, System.Text.Encoding.Default);
sw.Write(html.ToString());
sw.Close();
tw.Close();
Response.Write(html.ToString());
}
2.采用html模板,用变量替换的办法
我原来是使用1方法,但是我发现有问题了,我的主页A.html是静态页.也就是由B.aspx生成的A.html页.
现在A.html页要根据数据更新.就是当数据库中有一条数据更新了.A.html要马上生成.我以前是用在用户提交数据之后,使用window.open(B.aspx)在js中打开B.aspx生成的A.html页的,但是我发现window.open(B.aspx)不总是管用.而且我对js也不熟悉.怀疑它是否执行(因为我发现用户提交数据A.html有时候并没有更新)
头疼!
我想法这个过程移到后台来处理.也就是说能不能提交数据之后在后台调用一个方法.类似
WebFormA a=new WebFormA();
//...给a中的这个数据变量付值等等
string Html=a.Render();//生成
SaveHTML()!!!
可以吗??
别跟我说aspx的无状态哦.我知道的,有没有可能了.重载render???
解决方案 »
- 求一个 父页读写访问页面上的用户控件的变量值的例子!
- jquery怎么实现一个浮动窗口
- 嵌入式怎么样!
- vs2005 发布网站时 Global.asax 不管用
- gridview里面添加了checkbox 做用户权限的程序
- 这样的正则提取规则怎么写啊!提取标题和URL!
- ===关于数据库操作封装===
- 高手帮忙! 关于集成验证的问题,急
- 请问现在国内最好的采用C#技术开发的论坛是什么?在哪里有下载?
- 哪位有Dhtml及浏览器文档对象模型DOM的中文电子文档,万分的感谢,100相赠!
- 关于gridview刷新两次才能显示的问题!
- 如何实现像CSDN上那样,当鼠标移到用户头像上时,会出现用户的详细信息? (新)
------------------
在提交完成的页面中放一个框格inframe里面执行呀,弹出有大部分会被浏览器屏蔽你一把年纪了,前几年由不禁弹窗过渡到现在人人不关心弹窗你在干什么了.现在都不用弹窗,用IDV层了.
在提交完成的页面中放一个框格inframe里面执行呀,弹出有大部分会被浏览器屏蔽
你一把年纪了,前几年由不禁弹窗过渡到现在人人不关心弹窗你在干什么了.现在都不用弹窗,用IDV层了.
---
我可以改成使用iframe.src,但是也会.....div如何做到....要是在后台做到更好了
-------------
代码不要加if(!IspageLoad)事件中
我觉得你应该根据实际情况进行开发.你需要更新a.htm为最新的内容,更新的内容有多少,频繁度如何?(如果很频繁,那你不应该整页生成静态)
1\更新内容少,更新频繁
比如某个区域需要经常更新,那里可以采用框架inframe放在那里,放个里面显示aspx文件,直接从数据库取得,
同样,也可以用 <Script scr="news.aspx"></script>方式调用,news.aspx必须按javascript输出显示2\需要整页更新
xmlhttp调用取得动态页面内容生成静态.
ps,估计你对c/c++也不属~
把B.aspx的所有代码使用"混合代码(asp那种)"的方法写在你的提交页里面.
比如:string str="<tabel><tr><td>";sqlDatareader Rd=数据来源
if(Rd.read())
{
str=+ Rd["Title"].tostring();
}
str=+ "</td></tr></table>;最后直接把str变量生成到a.htm文件上.优点:效率高,速度快,数据能提交,页面就能生成,防止各种读取不到而无法生成的情况.
缺点:修改生成的页面时麻烦,第一次把内容全改成这样的格式时也很浪费时间.
缺点:修改生成的页面时麻烦,第一次把内容全改成这样的格式时也很浪费时间.--------------
大佬,你说的不就是使用模板的方法吗?
我想用第一种方法啊. 用 <Script scr="news.aspx" > </script >方式调用,news.aspx必须按javascript输出显示是个好东西.学习了,谢谢啊...