📄 read.aspx.cs
字号:
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.IO;
using System.Data.SqlClient;
using lalablog;
public partial class read : System.Web.UI.Page
{
SqlDataReader dr;
int userid, pagesize = 10,leftWords=300;
DateTime date;
bool isdate=false ;
protected void Page_PreInit()
{
//用querystring获取userid参数,要阅读谁的blog
//如果无法获取uesrid,再从session中获取,如果session不为空,
//则跳转到当前session中用户的blog
if (Request.QueryString["userid"] != null)
this.userid = Convert.ToInt32(Request.QueryString["userid"]);
else
{
if (Session["userid"] != null)
this.userid = Convert.ToInt32(Session["userid"].ToString());
else
Response.Redirect("~/index.aspx");
}
LoadTitle();
}
private void LoadTitle()
{
bloguser newuser = new bloguser(this.userid);
string[] setting = new string[5];
setting = newuser.getSetting();
this.pagesize = Convert.ToInt32(setting[2]);
this.leftWords = Convert.ToInt32(setting[4]);
theme usertheme = new theme(Convert.ToInt32(setting[0]));
Page.Theme = usertheme.getName();
//如果theme为空则说明用户使用了自定义主题
if (Page.Theme == "")
{
string themePath=Server .MapPath ("~/app_themes/");
themePath +="\\usertheme"+this.userid ;
if (Directory .Exists(themePath))
Page.Theme = "usertheme" + this.userid;
else
Page.Theme = "blog";
}
Page.Title = setting[1] + "的日志";
toptitle.InnerHtml = "<a id=topurl href=read.aspx?userid=" + userid + " > " + Page.Title + "</a>";
}
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["date"] != null)
{
date = Convert.ToDateTime(Request.QueryString["date"]);
isdate = true;
}
if (!IsPostBack&&!isdate )
{
loadLeft();
pageNavigate();
readblog(1);
}
if (isdate)
{
loadLeft();
navigator.Visible = false;
readBlogByDate();
}
}
private void readBlogByDate()
{
string strconn = ConfigurationManager.ConnectionStrings["dsn"].ToString();
SqlConnection cn = new SqlConnection(strconn);
cn.Open();
int year = date.Year;
int month = date.Month;
int day = date.Day;
string sql = "select blogid,username,add_date,title,left(puretext," + this.leftWords + ") as content,read_count,reply_count,blogpassword from users,blog where users.userid=blog.userid and year(add_date)=" + year + " and month(add_date)=" + month + " and day(add_date)=" + day;
if (Session["userid"] != null)
{
if (Session["userid"].ToString() == this.userid.ToString())
sql += " and text_folder>=0 ";
else
sql += " and text_folder=0 ";
}
else
sql += " and text_folder=0 ";
sql +="and blog.userid=" + this.userid;
SqlCommand cm = new SqlCommand(sql, cn);
try
{
this.dr = cm.ExecuteReader();
displayData();
}
catch (SqlException ex)
{
myfunc m1 = new myfunc(ex.Message);
Response.Write(m1.JavaMsg());
}
finally
{
cn.Close();
}
}
//根据用户的userid,和当前状态视图中存储的页码 读取指定条数的数据记录并显示
private string readblog(int pageindex)
{
string strconn = ConfigurationManager.ConnectionStrings["dsn"].ToString();
SqlConnection cn = new SqlConnection(strconn);
cn.Open();
SqlCommand cm = new SqlCommand("pageBlog", cn);
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add("@userid", SqlDbType.Int);
cm.Parameters.Add("@PageSize", SqlDbType.Int);
cm.Parameters.Add("@PageIndex", SqlDbType.Int);
cm.Parameters.Add("@leftWords", SqlDbType.Int);
cm.Parameters["@userid"].Value = this.userid;
cm.Parameters["@PageSize"].Value = this.pagesize;
cm.Parameters["@PageIndex"].Value = pageindex;
cm.Parameters["@leftWords"].Value = this.leftWords ;
/*如果当前登陆的用户是日志的所有者,则隐藏的日志也都显示*/
if (Session["userid"] != null)
{
if (Session["userid"].ToString() == this.userid.ToString())
{
cm.Parameters.Add("@text_folder", SqlDbType.Int);
cm.Parameters["@text_folder"].Value = 5;
}
}
try
{
this.dr = cm.ExecuteReader();
displayData();
ViewState["currentPage"] = pageindex;
cpage.InnerHtml = pageindex.ToString();
return "success";
}
catch (SqlException ex)
{
return ex.Message;
}
finally
{
cn.Close();
}
}
//输出html文本,输出的是一个表格,输出到了预先定义的span (message) 中
private void displayData()
{
string data="";
while (this.dr.Read())
{
if (dr["blogpassword"].ToString ()=="")
{
int blogid = Convert.ToInt32(dr["blogid"].ToString());
data += "<div class='readblog'>";
data += "<div class='title'><li>" + dr["title"].ToString() + "</li></div>";
data += "<div class='head'>作者:" + dr["username"].ToString();
data += " 发表日期:" + dr["add_date"].ToString() + "</div>";
data += "<div class='content'>" + dr["content"].ToString() + "</div>";
data += "<br><br><a href=article.aspx?userid=" + userid + "&blogid=" + blogid + ">阅读全文</a>……";
data += "<div class='foot'>阅读次数[" + dr["read_count"].ToString() + "] ";
data += "回复次数[" + dr["reply_count"].ToString() + "]</div>";
data += "</div>";
}
else
{
int blogid = Convert.ToInt32(dr["blogid"].ToString());
data += "<div class='readblog'>";
data += "<div class='title'>此日志已加密</div>";
data += "<div class='head'>作者:" + dr["username"].ToString();
data += " 发表日期:" + dr["add_date"].ToString() + "</div>";
data += "<div class='content'>此日志已加密</div>";
data += "<br><br><a href=article.aspx?userid=" + userid + "&blogid=" + blogid + ">阅读全文</a>……";
data += "<div class='foot'>阅读次数[" + dr["read_count"].ToString() + "] ";
data += "回复次数[" + dr["reply_count"].ToString() + "]</div>";
data += "</div>";
}
}
mainblog.InnerHtml =data;
}
//生成总页数,根据每页显示多少条记录得出页数
private void pageNavigate()
{
string mysql = "select count(blogid) from blog where userid=" + userid;
pageHtml p1 = new pageHtml(mysql);
ViewState["sumPage"] = p1.pageNavigate(this.pagesize);
spage .InnerText = ViewState["sumPage"].ToString();
if (ViewState["sumPage"].ToString() == "1")
navigator.InnerHtml = "";
}
//页面直接跳转
protected void tb_goPage_TextChanged(object sender, EventArgs e)
{
int x = Convert.ToInt32(tb_goPage.Text);
if (x < 1) x = 1;
int sumpage = Convert.ToInt32(ViewState["sumPage"].ToString());
if (x > sumpage) x = sumpage;
readblog(x);
}
//上一页
protected void lb_previous_Click(object sender, EventArgs e)
{
int x = Convert.ToInt32(ViewState["currentPage"].ToString()) - 1;
if (x < 1) x = 1;
readblog(x);
}
//下一页
protected void lb_next_Click(object sender, EventArgs e)
{
int x = Convert.ToInt32(ViewState["currentPage"].ToString()) + 1;
int sumpage = Convert.ToInt32(ViewState["sumPage"].ToString());
if (x > sumpage) x = sumpage;
readblog(x);
}
private void loadLeft()
{
String path = Server.MapPath("~/user/face/");
path = path + userid + ".jpg";
if (File.Exists(path))
Image1.ImageUrl = "~/user/face/" + userid + ".jpg";
else
Image1.Visible = false;
myfunc m1 = new myfunc(this.userid);
intro.InnerHtml = m1.loadIntro();
subject.InnerHtml = m1.loadSubject();
newblog.InnerHtml = m1.loadNewBlog();
newreply.InnerHtml = m1.loadNewReply();
friendlink.InnerHtml = m1.loadFriendLink();
userinfo.InnerHtml = m1.loadUserInfo();
samecity.InnerHtml = m1.loadSameCity();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -