aspx代码
<div>
<dl>
<asp:Repeater ID="repLevOne" runat="server">
<ItemTemplate>
<dt><%# DataBinder.Eval(Container, "DataItem.name").ToString()%></dt>
<asp:Repeater ID="repLevTwo" runat="server">
<ItemTemplate>
<dd><%# DataBinder.Eval(Container, "DataItem.name").ToString()%></dd>
<dd>
<asp:Repeater ID="repLevThree" runat="server">
<ItemTemplate>
<span><%# DataBinder.Eval(Container, "DataItem.name").ToString()%></span>
</ItemTemplate>
</asp:Repeater>
</dd>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</dl>
</div>.cs代码
database dbObj = new database();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BdingLev();
}
public void BdingLev()
{
string sqlstrOne = "select id, name, ParentID, typelevel from tb_LevCat where typelevel = 1 and ParentID = 0 and name is not null order by id asc";
string sqlstrTwo = "select id, name, ParentID, typelevel from tb_LevCat where typelevel = 2 and ParentID in (select id from Categories where typelevel =1 and ParentID =0 and name is not null) and name is not null order by id asc";
string sqlstrThree = "select id, name, ParentID, typelevel from tb_LevCat where typelevel = 3 and ParentID in (select id from Categories where typelevel= 2 and name is not null) and name is not null order by id asc";
DataSet ds = new DataSet("Data");
SqlConnection con = dbObj.Getconnection(); //数据库连接,写好的类
SqlCommand cmd = new SqlCommand(sqlstrOne, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
cmd.Connection.Open();
da.Fill(ds, "One"); SqlDataAdapter da2 = new SqlDataAdapter(sqlstrTwo, con);
da2.Fill(ds, "Two"); SqlDataAdapter da3 = new SqlDataAdapter(sqlstrThree, con);
da3.Fill(ds, "Three"); ds.Relations.Add("smallFun", ds.Tables["One"].Columns["id"], ds.Tables["Two"].Columns["ParentID"]);
ds.Relations.Add("small2Fun", ds.Tables["Two"].Columns["id"], ds.Tables["Three"].Columns["ParentID"]); repLevOne.DataSource = ds.Tables["One"].DefaultView;
repLevOne.DataBind();
cmd.Connection.Close();
}
是一个目录的三级,但是为什么只能显示出一级目录,二级三级的都无法显示
<div>
<dl>
<asp:Repeater ID="repLevOne" runat="server">
<ItemTemplate>
<dt><%# DataBinder.Eval(Container, "DataItem.name").ToString()%></dt>
<asp:Repeater ID="repLevTwo" runat="server">
<ItemTemplate>
<dd><%# DataBinder.Eval(Container, "DataItem.name").ToString()%></dd>
<dd>
<asp:Repeater ID="repLevThree" runat="server">
<ItemTemplate>
<span><%# DataBinder.Eval(Container, "DataItem.name").ToString()%></span>
</ItemTemplate>
</asp:Repeater>
</dd>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</dl>
</div>.cs代码
database dbObj = new database();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BdingLev();
}
public void BdingLev()
{
string sqlstrOne = "select id, name, ParentID, typelevel from tb_LevCat where typelevel = 1 and ParentID = 0 and name is not null order by id asc";
string sqlstrTwo = "select id, name, ParentID, typelevel from tb_LevCat where typelevel = 2 and ParentID in (select id from Categories where typelevel =1 and ParentID =0 and name is not null) and name is not null order by id asc";
string sqlstrThree = "select id, name, ParentID, typelevel from tb_LevCat where typelevel = 3 and ParentID in (select id from Categories where typelevel= 2 and name is not null) and name is not null order by id asc";
DataSet ds = new DataSet("Data");
SqlConnection con = dbObj.Getconnection(); //数据库连接,写好的类
SqlCommand cmd = new SqlCommand(sqlstrOne, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
cmd.Connection.Open();
da.Fill(ds, "One"); SqlDataAdapter da2 = new SqlDataAdapter(sqlstrTwo, con);
da2.Fill(ds, "Two"); SqlDataAdapter da3 = new SqlDataAdapter(sqlstrThree, con);
da3.Fill(ds, "Three"); ds.Relations.Add("smallFun", ds.Tables["One"].Columns["id"], ds.Tables["Two"].Columns["ParentID"]);
ds.Relations.Add("small2Fun", ds.Tables["Two"].Columns["id"], ds.Tables["Three"].Columns["ParentID"]); repLevOne.DataSource = ds.Tables["One"].DefaultView;
repLevOne.DataBind();
cmd.Connection.Close();
}
是一个目录的三级,但是为什么只能显示出一级目录,二级三级的都无法显示
不用ItemDataBound事件。
谁能帮忙看下我这贴得问题吗!!
<asp:Repeater ID="repLevTwo" runat="server" DataSource='<%# DataBinder.Eval(Container, "DataItem.smallFun") %>'>
就好了