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文件的代码:
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;
}
}
就这样就行了...代码不多吧..主要是比较简单,所以推荐使用..上面代码里的命名是随便写的,为了方便看.请看官不要追究命名规范问题...谢谢.