后台:
DataSet ds = new DataSet();
DataView dv;
protected void Page_Load(object sender, EventArgs e)
{
string strDBPath = System.Configuration.ConfigurationSettings.AppSettings["DBPath"];
string strConn = System.Configuration.ConfigurationSettings.AppSettings["Connection"] + Server.MapPath(strDBPath);
OleDbConnection myConnection = new OleDbConnection(strConn);
OleDbDataAdapter dr;
dr = new OleDbDataAdapter("Select * From ArticleType order by typeid asc", myConnection);
dr.Fill(ds, "ArticleType");
dr.SelectCommand = new OleDbCommand("Select NewsID,Title,typeid,UpdateTime From Article", myConnection);
dr.Fill(ds, "Article");
dv = ds.Tables["Article"].DefaultView;
ArticleTypeName.DataSource = ds;
ArticleTypeName.DataMember = "ArticleType";
ArticleTypeName.DataBind();
}
public DataView FilterArticle(int intCatID)
{
dv.RowFilter = "typeid=" + intCatID;
return dv;
}
前台:
<asp:Repeater ID="ArticleTypeName" Runat="Server">
<ItemTemplate>
<h2><%#Eval("typename")%></h2>
<asp:DataGrid ID="ArticleTitle" DataSource='<%#FilterArticle(1) %>' Runat="Server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<table cellspacing="0" cellpadding="0" width="100%" border="1" bordercolordark="#CCCCCC" bordercolorlight="#FFFFFF">
<tr>
<td height="25" valign="middle"><a href='ArticleDetail.aspx?NewsID=<%# Eval("NewsID") %>'><%# Eval("Title") %></a><font color="#777777">(<%# Eval("UpdateTime","{0:yyyy-MM-dd}") %>)</font></td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</ItemTemplate>
</asp:Repeater>
本文介绍了一种使用ASP.NET进行数据展示的方法,并通过后台逻辑实现了数据的动态过滤功能。具体实现包括:从数据库中读取文章类型和文章详情数据,利用Repeater和DataGrid控件展示文章类型;并通过DataView对象进行数据过滤,使得每个文章类型的对应文章能够被正确地显示。
905

被折叠的 条评论
为什么被折叠?



