ASP.NET中Repeater控件使用dataset的Relations属性建立关系提取节点

作者: unvs 分类: ASP.NET 发布时间: 2011-04-25 14:30 ė12,761 views 61条评论

今天使用了Repeater控件结合dataset的Relations关系,做了一个节点级联,把他分享给大家,下面是效果图:

首先说下relations属性,DataSet 对象中的 Relations 属性。此属性用于建立表链接并允许父类访问到子类的关系的集合。Relations 属性是 System.Data.DataRelationCollection 类的实例

前台aspx代码:

     <asp:Repeater ID="menutree" runat="server">
      <ItemTemplate>
       <div class="Highlight" style="font-weight: bold;">
        <input id="menuItem" name="menuItem" type="checkbox" value="<%# Eval("ID") %>" onclick="chkedvalue()" />
        <%# Eval("menuName") %>
       </div>
       <div>
        <asp:Repeater ID="menuson" runat="server" DataSource=’<%#((DataRowView)Container.DataItem).Row.GetChildRows("myrelations") %>’>
         <ItemTemplate>
          &nbsp;<input id="menuItem" name="menuItem" type="checkbox" value="<%# Eval("[\"ID\"]") %>"
           onclick="chkedvalue()" />
          <%# Eval("[\"menuName\"]") %>
         </ItemTemplate>
        </asp:Repeater>
       </div>
      </ItemTemplate>
     </asp:Repeater>

后台aspx.cs代码:

            string sqlmenu = "select * from adminmenu where parentID=0 order by rootID"; //sql语句
            string sqlmenuson = "select * from adminmenu where parentID>0 order by rootID"; //sql语句
            DataSet ds = new DataSet(); //新建数据集ds
            OleDbDataAdapter damenu = OleDbHelper.ExecuteDataAdapter(CommandType.Text, sqlmenu); //新建适配器damenu
            OleDbDataAdapter damenuson = OleDbHelper.ExecuteDataAdapter(CommandType.Text, sqlmenuson); //新建适配器damenuson
            damenu.Fill(ds, "damenu"); //分别填充数据集的damenu表和damenuson
            damenuson.Fill(ds, "damenuson");
            ds.Relations.Add("myrelations", ds.Tables["damenu"].Columns["ID"], ds.Tables["damenuson"].Columns["parentID"]); //利用relations关系属性,建立连接,将数据填充至myrelations表中。这里通过第二项的damenu表中的id与第三项的damenuson表中的parentID建立连接获得数据。
            menutree.DataSource = ds.Tables["damenu"]; //进行数据源绑定
            menutree.DataBind();

这里,为了更方便有些初学者的理解,我把数据库的adminmenu表结构简单用表格写出来,如果还不明白直接留言:

id menuName parentID
1 系统设置 0
2 基本设置 1
3 用户管理 1
4 公司介绍 0

 

 

 

 

注:relations属性不仅可以在repeater控件中使用,还可以在datalist与detailsview控件中使用,方法一样。。。

       这只是最基本的,其实通过这个实例,可以延伸实现很多效果,比如:点击系统设置,下面的隐藏或展开等等。。。

本博文章基本上属于原创或收集整理,都是心血结晶。
欢迎转载分享,转载请注明出处,谢谢!
本文地址:ASP.NET中Repeater控件使用dataset的Relations属性建立关系提取节点

一条评论

  1. 远走高飞 2011 年 4 月 25 日 下午 8:34 回复

    详细,借鉴了

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ɣ回顶部