62,075
社区成员
发帖
与我相关
我的任务
分享
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ShowUser.aspx.cs" Inherits="day19_ShowUser" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>用户详情查看</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table cellspacing="0" rules="all" border="1" style="width:400px;border-collapse:collapse;">
<tr>
<td>编号</td><td>
<asp:Label ID="lbUserID" runat="server"></asp:Label></td>
</tr>
<tr>
<td>用户名</td><td>
<asp:Label ID="lbUserName" runat="server"></asp:Label></td>
</tr>
<tr>
<td>真实姓名</td><td>
<asp:Label ID="lbRealName" runat="server"></asp:Label></td>
</tr>
<tr>
<td>年龄</td><td>
<asp:Label ID="lbAge" runat="server"></asp:Label></td>
</tr>
<tr>
<td>性别</td><td>
<asp:Label ID="lbSex" runat="server"></asp:Label></td>
</tr>
<tr>
<td>手机</td><td>
<asp:Label ID="lbMobile" runat="server" ></asp:Label></td>
</tr>
<tr>
<td>电子邮件</td><td>
<asp:Label ID="lbEmail" runat="server"></asp:Label><a href='emailto:{@Email}'></a></td>
</tr>
</table>
</div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.IO;
using System.Text;
public partial class day19_ShowUser : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string userId = Request.QueryString["UserId"];
if (!string.IsNullOrEmpty(userId))
{
string connectionString = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;;
SqlDbHelper helper = new SqlDbHelper(connectionString);
string sql = "select * from UserInfo where UserId=@UserId";
SqlParameter[] parameters = new SqlParameter[1];
parameters[0] = new SqlParameter("@UserId", userId);
SqlDataReader dataReader = helper.ExecuteReader(sql, CommandType.Text, parameters);
if (dataReader.Read())
{
lbAge.Text = dataReader["Age"].ToString();
string realName = dataReader["RealName"].ToString();
string email = dataReader["Email"].ToString();
lbEmail.Text = "<a href='mailto:" + email + "'>" + realName + "</a>";
lbMobile.Text = dataReader["Mobile"].ToString();
lbRealName.Text = realName;
lbSex.Text = bool.Parse(dataReader["Sex"].ToString()) ? "男" : "女";
lbUserID.Text = userId;
lbUserName.Text = dataReader["UserName"].ToString();
dataReader.Close();
}
else
{
lbUserName.Text = "找不到相关数据。";
}
}
else
{
lbUserName.Text = "参数错误。";
}
}
}
}
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;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>{@RealName}的详细资料</title>
</head>
<body>
<table cellspacing="0" rules="all" border="1" style="width:400px;border-collapse:collapse;">
<tr>
<td>编号</td><td>{@UserID}</td>
</tr>
<tr>
<td>用户名</td><td>{@UserName}</td>
</tr>
<tr>
<td>真实姓名</td><td>{@RealName}</td>
</tr>
<tr>
<td>年龄</td><td>{@Age}</td>
</tr>
<tr>
<td>性别</td><td>{@Sex}</td>
</tr>
<tr>
<td>手机</td><td>{@Mobile}</td>
</tr>
<tr>
<td>电子邮件</td><td>
<a href='emailto:{@Email}'>发邮件给{@RealName}</a>
</td>
</tr>
</table>
</body>
</html>
//模版替换法生成静态页
protected void btnTemplate_Click(object sender, EventArgs e)
{
//获取模版页的路径
string templatePath = Server.MapPath("~/day19/UserInfo.html");
//如果存在模版页
if (File.Exists(templatePath))
{
StreamReader reader = new StreamReader(templatePath, Encoding.UTF8);
//读取模版页的内容
string templateValue = reader.ReadToEnd();
reader.Close();
//读取web.config中的数据库链接信息
string connectionString = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;
SqlDbHelper helper = new SqlDbHelper(connectionString);
string sql = "select * from UserInfo";
DataTable data = helper.ExecuteDataTable(sql);
//将数据库中所有的所有记录都生成静态页
foreach (DataRow row in data.Rows)
{
StringBuilder result = new StringBuilder(templateValue);
//替换{@UserID}标签
result = result.Replace("{@UserID}", row["UserId"].ToString());
//替换{@UserName}标签
result = result.Replace("{@UserName}", row["UserName"].ToString());
result = result.Replace("{@RealName}", row["RealName"].ToString());
result = result.Replace("{@Age}", row["Age"].ToString());
result = result.Replace("{@Sex}", bool.Parse(row["Sex"].ToString()) ? "男" : "女");
result = result.Replace("{@Mobile}", row["Mobile"].ToString());
result = result.Replace("{@Email}", row["Email"].ToString());
string userId=row["UserId"].ToString();
//设置替换所有标签后的静态页面的保存路径
string savePath=Server.MapPath("~/day19/ShowUser"+userId+".html");
StreamWriter writer = new StreamWriter(savePath, false, Encoding.UTF8);
//将内容写入到页面并关闭文件流
writer.Write(result.ToString());
writer.Close();
}
lbStatus.Text = "生成所有静态页面成功。";
}
}
//直接输出法生成静态页
protected void btnHttp_Click(object sender, EventArgs e)
{
string connectionString = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;
SqlDbHelper helper = new SqlDbHelper(connectionString);
//通过SQL语句查询数据库中所有用户的ID
string sql = "select UserId from UserInfo";
SqlDataReader dataReader = helper.ExecuteReader(sql);
//定义将来要访问的动态页的路径,开发文件系统类型的网站时会带有端口号
string url = "http://localhost:1856/Web/day19/ShowUser.aspx?UserId=";
string userId = string.Empty;
//HttpWebRequest用来与服务器交互
HttpWebRequest request = null;
//服务器响应的相关信息
HttpWebResponse response = null;
Stream stream = null;
StreamReader reader = null;
while (dataReader.Read())
{
userId = dataReader[0].ToString();
//生成HttpWebRequest类的实例
request = (HttpWebRequest)WebRequest.Create(url + userId);
//获取来自服务器的响应
response = (HttpWebResponse)request.GetResponse();
//获取服务器响应流
stream=response.GetResponseStream();
reader = new StreamReader(stream);
//一次性读取整个响应的内容
string result = reader.ReadToEnd();
reader.Close();//关闭字符流对象
response.Close();//关闭HttpWebResponse对象
//生成的静态文件保存路径
string savePath = Server.MapPath("~/day19/ShowUser" + userId + ".html");
StreamWriter writer = new StreamWriter(savePath, false, Encoding.UTF8);
writer.Write(result);
writer.Close();
}
dataReader.Close();//关闭SqlDataReader对象
lbStatus.Text = "生成所有静态页面成功。";
}