我想利用.net动态生成html页面,生成的页面却没datagrid的结果,而且汉字都是乱马,请是怎么回事?或者谁有更好的办法 生成html页面时将DataGrid的结果显示出来
public void GridBind()
{
string SQL2="Select * from news";
DataSet ds2=new DataSet();
SqlDataAdapter Adapter2=new SqlDataAdapter(SQL2,Conn);
Adapter2.Fill(ds2,"player2");
DataGrid1.DataSource=ds2.Tables["player2"].DefaultView;
DataGrid1.DataBind();
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
string filename=@"C:\Inetpub\wwwroot\test\Index.html";
FileStream fs = new FileStream( filename, FileMode.Create );
HtmlTextWriter _writer = new HtmlTextWriter( new StreamWriter( fs ) );
base.Render (_writer);
}
public void GridBind()
{
string SQL2="Select * from news";
DataSet ds2=new DataSet();
SqlDataAdapter Adapter2=new SqlDataAdapter(SQL2,Conn);
Adapter2.Fill(ds2,"player2");
DataGrid1.DataSource=ds2.Tables["player2"].DefaultView;
DataGrid1.DataBind();
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
string filename=@"C:\Inetpub\wwwroot\test\Index.html";
FileStream fs = new FileStream( filename, FileMode.Create );
HtmlTextWriter _writer = new HtmlTextWriter( new StreamWriter( fs ) );
base.Render (_writer);
}
解决方案 »
- GDO+中出现一般性错误
- 急求~~在线等-100分---直接在地址栏输入aspx页面名,访问不了
- 下了一个留言板,但是出现问题打不开
- owc画的柱状图太细了!
- 急!!!帮帮简单问题!!!!!
- 请讨论一下用c#进行数据库遍程 网络通讯遍程 游戏编程三者哪个更有"钱途"啊?为什么呢?谢谢!
- 搞电子商务学asp还是asp.net,jsp?
- 关不了模态窗口?!
- 如何统计数据库记录的数量
- 请问sqlclient 和 oledb 连接数据库 有什么区别,性能是否有差异
- FreeTextBox最新版是多少?
- 请问如何实现等待的界面, 比如沙漏的功能 (************出手从来100分*************)
无论如何,第一次访问时都得从数据库中读取数据。
只要在这时将所有要输出的数据都保存至 HTML 文件即可,这一点用 Servlet 比较好做。
即是如楼上所言的模板。
如:
public void doGet(HttpServletRequest req, HttpServletResponse res){
//检测是否有新数据,如果没有,而且已经有缓存页面,跳
if(/*...*/ && /*...*/){
this.getServletContext().getRequestDispatcher("缓存页").forward(req, res);
return;
}
//读取数据库中的数据
//...
//读取模板文件
File f = new File("Template.html");
StringBuffer buf = new StringBuffer();
String line;
BufferedReader br = new BufferedReader(new FileReader(f));
while((line = br.readLine()) != null){
buf.append(line);
}
String result;
result = buf.replaceAll("模板中预留的字符串变量", 从数据库读出的数据);
//...
//保存缓存页
FileOutputStream fos = new FileOutputStream(new File("缓存页"));
fos.write(result.getBytes());
fos.close();
response.getWriter().print(result);
}
创建文件是注意,有些创建文件是只基于UTF-8的。创建文件之前应先检查您的页面的编码 。
最后是读写时 的编码也要认清。
FileMode.Create
HtmlTextWriter( new StreamWriter( fs ),... ...GB2312(OR UTF-8)... );
System.Text.Encode.Encoding.Default
....Response.Charset="";
this.EnableViewState =false;
StringWriter tw=new StringWriter();
HtmlTextWriter wt =new HtmlTextWriter(tw);string path=@"c:\test.htm";StreamWriter wter = File.CreateText(path);
//输出所有信息
this.RenderControl(wt);
wter.Write(tw.ToString());
//可以控制是否只显示DataGrid的数据
//DataGrid1.RenderControl(wt);//可以控制是否输出出来全部信息
Response.Write(tw.ToString());wter.Close();wt.Close();
tw.Close();
Response.End();}
一般是gb2312和utf-8