Repeater控件嵌套--多级目录

    技术2022-05-20  50

    Repeater控件多个嵌套的数据绑定之简单实现

    一般项目总很多地方会有分类这样一个功能..

    一级分类,二级分类,三级分类这样的..

    要显示这样的一个分类,常用的方法是使用treeview控件.

    但也有不少人是使用Repeater控件多个嵌套来模拟tree的..

    怎么样实现呢,方法不少..现在来一个比较简单的.

    上图:

     

    这是一个简单的二级分类..

    aspx代码是这样的:

     

    Code <asp:Repeater ID="Repeater1" runat="server">        <ItemTemplate>        <table>        <tr><td width="150"><h3>            <%#DataBinder.Eval(Container.DataItem,"kemu_category_name"%>//这里是绑定的一级分类名称            </h3></td></tr>        <tr><td>            <asp:Repeater ID="Repeater2" runat="server" DataSource='<%#GetDataSourceById(Convert.ToInt32(DataBinder.Eval(Container.DataItem,"kemu_category_id"))) %>'>//这里的GetDataSourceById是一个带参数的方法,写在CS文件里.将一级分类的ID(kemu_category_id)传进来.            <ItemTemplate>            <table><tr><td>            <%#DataBinder.Eval(Container.DataItem,"kemu_name"%>//这里绑定的则是二级分类的名称了.            </td></tr></table>            </ItemTemplate>            </asp:Repeater>        </td></tr>        </table>        </ItemTemplate>        </asp:Repeater>

     

    接下来看看CS文件的代码:

     

    Code 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 BLL;public partial class web_account_kemumingxi : System.Web.UI.Page{    ManageKemu MKemu = new ManageKemu();    DataSet ds = new DataSet();    protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {                DataBindToRP1();        }    }    //绑定一级分类的方法.    public void DataBindToRP1()    {        ds.Clear();        ds = MKemu.ShowKemuCategory();//这里大家自己写数据读取的方法        Repeater1.DataSource = ds;        Repeater1.DataBind();    }    //这里就是aspx文件里调用的那个方法了.返回一个DataSet    public DataSet GetDataSourceById(int id)    {        MKemu.Kemu_category_id = id;        ds = MKemu.ShowDetailKemu();        return ds;    }}

     

     

    就这样就行了...代码不多吧..主要是比较简单,所以推荐使用..上面代码里的命名是随便写的,为了方便看.请看官不要追究命名规范问题...谢谢.


    最新回复(0)