📄 banzhu.aspx
字号:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html>
<head><title>欣欣在线论坛</title>
<style type="text/css">
<!--
td{font-size:9pt;}
-->
</style>
<script language="C#" runat="server">
SqlConnection cn;
void Page_Load(Object Src, EventArgs E )
{
// 将Session变量IsGood设为0,表示是普通区
Session["IsGood"]=0;
// 设置链接目标
PostThd.NavigateUrl="postthd.aspx?subid="+Request.QueryString["subid"];
RefreshThd.NavigateUrl="display.aspx?subid="+Request.QueryString["subid"];
JinHua.NavigateUrl="jinhua.aspx?subid="+Request.QueryString["subid"];
DisplayThd.NavigateUrl="display.aspx?subid="+Request.QueryString["subid"];
// 从Web.config文件中读取连接字符串
String strConn=ConfigurationSettings.AppSettings["eForum"];
// 创建Connection对象cn
cn=new SqlConnection(strConn);
// 打开连接
cn.Open();
// 构造SQL语句,该语句根据子版号从SubBoards表中选择子版
String strSQL="select * from SubBoards where SubId='"+
Request.QueryString["subid"]+"'";
// 创建Command对象
SqlCommand cm=new SqlCommand(strSQL,cn);
// 执行ExecuteReader()方法
SqlDataReader dr=cm.ExecuteReader();
if (dr.Read()) {
if(dr["BanZhu"].ToString()!=Session["UserName"].ToString()) {
Response.Write("<br> ");
Response.Write("您不是版主,不能进入版主区!<br>");
// 关闭连接
cn.Close();
// 立即结束
Response.End();
}
// 显示子版名和版主名
SubName.InnerHtml=dr["SubName"].ToString();
BanZhu.InnerHtml=dr["BanZhu"].ToString();
}
// 关闭连接
cn.Close();
if (!IsPostBack) {
dgThreads.CurrentPageIndex=0;
BindGrid();
}
}
public void BindGrid()
{
// 定义SQL语句,该语句根据子版号从Threads表中选出该子版的所有
// 文章,并以SendTime字段降序排序,即将最新的文章列在最上面
String strSQL="select * from Threads where SubID='"+
Request.QueryString["subid"]+"' order by SendTime desc";
// 创建DataAdapter对象
SqlDataAdapter da=new SqlDataAdapter(strSQL,cn);
// 创建并填充DataSet
DataSet ds = new DataSet();
da.Fill(ds);
// 绑定到DataGrid控件
dgThreads.DataSource=ds;
dgThreads.DataBind();
// 显示当前页
CurrentPage.InnerHtml=(dgThreads.CurrentPageIndex+1).ToString();
// 显示总页数
TotalPages.InnerHtml=(dgThreads.PageCount).ToString();
// 打开连接
cn.Open();
// 构造SQL语句,该语句获得总记录数
strSQL="select Count(*) from Threads where SubID='"+
Request.QueryString["subid"]+"'";
// 创建Command对象
SqlCommand cm=new SqlCommand(strSQL,cn);
// 执行ExecuteScalar()方法
int nums=(int)cm.ExecuteScalar();
// 显示总记录数
ThdNums.InnerHtml=nums.ToString();
// 关闭连接
cn.Close();
if (dgThreads.CurrentPageIndex==0) {
PreviousPage.Enabled=false;
NextPage.Enabled=true;
} else {
if (dgThreads.CurrentPageIndex==(dgThreads.PageCount-1)) {
NextPage.Enabled=false;
PreviousPage.Enabled=true;
} else {
PreviousPage.Enabled=true;
NextPage.Enabled=true;
}
}
}
// 删除指定编号的文章
public void DeleteThd(Object sender,DataGridCommandEventArgs E)
{
// 构造SQL语句,该语句用于删除指定编号的文章
String strSQL="delete from Threads where ThdId=@ThdId";
// 创建Command对象
SqlCommand cm=new SqlCommand(strSQL,cn);
// 添加参数
cm.Parameters.Add(new SqlParameter("@ThdId",SqlDbType.Int));
// 给参数赋值
cm.Parameters["@ThdId"].Value=dgThreads.DataKeys[(int)E.Item.ItemIndex];
// 打开连接
cm.Connection.Open();
// 执行ExecuteNonQuery()方法
cm.ExecuteNonQuery();
// 关闭连接
cm.Connection.Close();
// 更新DataGrid
BindGrid();
}
// 处理编辑事件。将DataGrid的EditItemIndex属
// 性设为选中数据项的索引,然后重载DataGrid
void DataGrid_Edit(Object sender,DataGridCommandEventArgs E)
{
dgThreads.EditItemIndex=(int)E.Item.ItemIndex;
BindGrid();
}
// 处理取消更改事件。将DataGrid的EditItemIndex属性
// 设为-1,表示退出编辑状态,然后重载DataGrid
void DataGrid_Cancel(Object sender,DataGridCommandEventArgs E)
{
dgThreads.EditItemIndex=-1;
BindGrid();
}
// 处理更新事件
public void DataGrid_Update(Object sender,DataGridCommandEventArgs E)
{
// 构造SQL语句,该语句将指定编号的文章设为精华文章
String strSQL="update Threads set IsGood=@IsGood where ThdId=@ThdId";
// 创建Command对象cm
SqlCommand cm=new SqlCommand(strSQL,cn);
// 添加参数
cm.Parameters.Add(new SqlParameter("@IsGood",SqlDbType.TinyInt));
cm.Parameters.Add(new SqlParameter("@ThdId",SqlDbType.Int));
// 给参数赋值
cm.Parameters["@IsGood"].Value=((TextBox)E.Item.Cells[2].Controls[0]).Text;
cm.Parameters["@ThdId"].Value=dgThreads.DataKeys[(int)E.Item.ItemIndex];
// 打开连接
cm.Connection.Open();
// 执行ExecuteNonQuery()方法
cm.ExecuteNonQuery();
// 退出编辑状态
dgThreads.EditItemIndex=-1;
// 关闭连接
cm.Connection.Close();
// 更新DataGrid
BindGrid();
}
void NavigationLink_OnClick(object sender,CommandEventArgs e)
{
switch (e.CommandName) {
case "First":
dgThreads.CurrentPageIndex=0;
break;
case "Last":
dgThreads.CurrentPageIndex=dgThreads.PageCount-1;
break;
case "Next":
dgThreads.CurrentPageIndex=dgThreads.CurrentPageIndex+1;
break;
case "Previous":
dgThreads.CurrentPageIndex=dgThreads.CurrentPageIndex-1;
break;
}
BindGrid();
}
</script>
</head>
<body background="./images/gray.jpg">
<table align="center" border="0">
<tr><td>
版名:<font color="#FF0080"><strong>
<span id="SubName" runat="server" /></strong></font>
版主:<font color=red>
<span id="BanZhu" runat="server" /></font>
</td></tr>
<tr><td>
<!--查询字符串中包含子版号-->
<asp:HyperLink runat="server" id="PostThd"
Text="[张贴文章]" Target="_self" />
<asp:HyperLink runat="server" id="RefreshThd"
Text="[刷新文章]" Target="_self" />
<asp:HyperLink runat="server" id="JinHua"
Text="[精华区]" Target="_self" />
<asp:HyperLink runat="server" id="DisplayThd"
Text="[普通区]" Target="_self" />
[版主区]
</td></tr>
</table>
<form runat="server">
<table align="center" border="0">
<tr><td>
<font color="#FF0080"><strong>
第<span id="CurrentPage" runat="server" />页
共<span id="TotalPages" runat="server" />页
原始文章共<span id="ThdNums" runat="server" />篇
 </strong></font>
</td></tr>
</table>
<table border="0" width="100%">
<tr><td width="100%" align="right">
<asp:LinkButton runat="server" id="FirstPage" Text="[首页]"
OnCommand="NavigationLink_OnClick" CommandName="First" />
<asp:LinkButton runat="server" id="PreviousPage" Text="[上一页]"
OnCommand="NavigationLink_OnClick" CommandName="Previous" />
<asp:LinkButton runat="server" id="NextPage" Text="[下一页]"
OnCommand="NavigationLink_OnClick" CommandName="Next" />
<asp:LinkButton runat="server" id="LastPage" Text="[最后一页]"
OnCommand="NavigationLink_OnClick" CommandName="Last" />
</td></tr>
</table>
<asp:DataGrid id="dgThreads" runat="server"
Width="100%" Border="0" Font-Size="9pt"
ShowFooter="false" HeaderStyle-BackColor="#aaaadd"
AllowPaging="true" PageSize=6
PagerStyle-Visible="false"
OnDeleteCommand="DeleteThd"
OnEditCommand="DataGrid_Edit"
OnCancelCommand="DataGrid_Cancel"
OnUpdateCommand="DataGrid_Update"
DataKeyField="ThdId"
AutoGenerateColumns="false">
<Columns>
<asp:EditCommandColumn EditText="编辑" CancelText="取消"
UpdateText="更新" ItemStyle-Wrap="false"/>
<asp:ButtonColumn Text="[删除]" CommandName="Delete"
ItemStyle-Wrap="false"/>
<asp:BoundColumn HeaderText="精华文章" DataField="IsGood" />
<asp:HyperLinkColumn HeaderText="主题"
DataTextFormatString="{0}"
DataTextField="Subject"
DataNavigateUrlField="ThdId"
DataNavigateUrlFormatString="getthd.aspx?thdid={0}"
Target="_blank" />
<asp:TemplateColumn HeaderText="作者昵称、文章长度和发表时间">
<ItemTemplate>
<asp:Label runat="server"
Text='<%#DataBinder.Eval(Container.DataItem,"NickName")%>'/>
<asp:Label runat="server"
Text='<%#DataBinder.Eval(Container.DataItem,"Length")%>'/>字
<asp:Label runat="server"
Text='<%#DataBinder.Eval(Container.DataItem,"SendTime","{0:s}")%>'/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -