高级RowFilter的使用(文章大类下显示所有小类)

本文介绍了一种使用ASP.NET进行数据展示的方法,并通过后台逻辑实现了数据的动态过滤功能。具体实现包括:从数据库中读取文章类型和文章详情数据,利用Repeater和DataGrid控件展示文章类型;并通过DataView对象进行数据过滤,使得每个文章类型的对应文章能够被正确地显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后台:

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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值