用C#写网站后台时的记录
文章正文
正文显示使用DATALIST和数据绑定技术实现,需要接收从列表页传来的数据并根据数据来寻找相应的数据库记录。
代码如下
string id =Request.QueryString["id"];
SqlConnection mystr = new SqlConnection();
mystr.ConnectionString = "Data Source=mike;Initial Catalog=jishengWebSite;User ID=sa;Password=123456;Pooling=False";
mystr.Open();
SqlDataAdapter sda = new SqlDataAdapter("select * from T_XWDT where id ='"+Server.UrlDecode(id)+"'", mystr);
DataSet ds = new DataSet();
sda.Fill(ds);
DataList1.DataSource = ds;
DataList1.DataBind();
由于每个文章列表页对应不同的表,所以就在代码中把表名写死了,根据每个不同的页面调整。使用DATAADAPTER来使用SQL语言,DATASET来存储数据,将datalist的数据源绑定在DATASET上,由于只有一条数据,所以只显示一篇文章内容,在网页的HTML代码中ItemTemplate处编写控制样式的模板。
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate><table>
<tr><td><h1><%#DataBinder.Eval(Container.DataItem, "title")%></h1></td></tr>
<tr><td>
<table><tr><td style="padding-right:50px;"><%#DataBinder.Eval(Container.DataItem,"publishtime") %></td><td><%#DataBinder.Eval(Container.DataItem,"origin") %></td></tr></table>
</td></tr>
<tr><td><%#DataBinder.Eval(Container.DataItem,"context") %></td></tr>
</table></ItemTemplate>
</asp:DataList>
其中<%#DataBinder.Eval(Container.DataItem,"publishtime") %>表示取出字段名为PUBLISHTIME的值,而Container.DataItem代表了datalist,repeater等。
文章列表分页
使用REPEATER实现分页,使用LABLE来显示当前页,用HyperLink来标注前一页和下一页。在处理页加入以下代码
if(!IsPostBack )
{
SqlConnection mystr = new SqlConnection();
mystr.ConnectionString = "Data Source=mike;Initial Catalog=jishengWebSite;User ID=sa;Password=123456;Pooling=False";
mystr.Open();
SqlDataAdapter sda = new SqlDataAdapter("select * from T_XWDT", mystr);
DataSet ds = new DataSet();
sda.Fill(ds);
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;
if (Request.QueryString["Page"] != null)
CurPage = Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage = 1;
objPds.CurrentPageIndex = CurPage - 1;
lblCurrentPage.Text = "当前页:" + CurPage.ToString();
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
if (!objPds.IsLastPage)
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
Repeater1.DataSource = objPds;
Repeater1.DataBind();
}
在网页处加入以下代码
<asp:label ID="lblCurrentPage" runat="server"></asp:label>
<asp:HyperLink id="lnkPrev" runat="server">上一页</asp:HyperLink>
<asp:HyperLink id="lnkNext" runat="server">下一页</asp:HyperLink>
审核功能的添加
在每一个需要有审核功能的栏目的表中加入审核字段ISPASS数据类型为BIT ,默认值为0(若不加默认值,在修改文章时会出现无法转换类型的错误),在文章管理的GRIDVIEW中加入一个新的CHECKBOX字段,将其绑定到ISPASS字段值,修改文章添加,修改的方法,并且修改数据库中的相关存储过程。