电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> 数据库
使用嵌套的Repeater控件显示分级数据-.NET教程,数据库应用
作者:网友供稿 点击:39
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
简介

  本文描述如何使用嵌套的repeater 控件来显示分级数据 。当然了,你也可以将这一技术应用到其他的列表绑定控件上去,比如datagrid包含datagrid,datalist包含datalist等等的组合。

  绑定到父表

  1.添加一个新的web form 到应用程序项目中,名称为nestedrepeater.aspx.
  2.从工具箱托动一个repeater 控件到这个页面上, 设定其id 属性为 parent .
  3.切换到html 视图.
  4.选中下列<itemtemplate> 代码,复制到repeater 控件对应的位置。注意,粘贴的时候请使用“粘贴为html”功能。这些语句包含了数据绑定语法,很简单。

<itemtemplate>
<b><%# databinder.eval(container.dataitem, "au_id") %></b><br>
</itemtemplate>

  5.打开nestedrepeater.aspx.cs 这个代码分离文件。降下列代码添加到page_load 事件中,其作用是建立一个到 pubs (这个数据库是sql server的演示数据库。另外在安装.net framework sdk的时候也会安装这个数据库)数据库的连接,并绑定authors 表到repeater 控件

public void page_load()
{
 sqlconnection cnn = new sqlconnection("server=(local);database=pubs;uid=sa;pwd=;");
 sqldataadapter cmd1 = new sqldataadapter("select * from authors",cnn);
  dataset ds = new dataset();
  cmd1.fill(ds,"authors");

  //这里将要插入子表的数据绑定

  parent.datasource = ds.tables["authors"];
  page.databind();
 cnn.close();
}

  6.在文件的头部添加下面的名称空间
  using system.data.sqlclient;
  7.根据你自己的情况修改一下连接字符串
  8.保存并编译应用程序
  9.在浏览器中打开这个页面,输出结果类似于下面的格式

172-32-1176
213-46-8915
238-95-7766
267-41-2394
...

  绑定到子表

  1.在页面的html视图中,添加下列代码。其目的是增加子repeater 控件到父repeater的项目模板中,形成嵌套。

<asp:repeater id="child" runat="server">
<itemtemplate>
<%# databinder.eval(container.dataitem, "[\"title_id\"]") %><br>
</itemtemplate>
</asp:repeater>

  2.设置子repeater 控件的datasource 属性:

<asp:repeater ... datasource=<%# ((datarowview)container.dataitem)
.row.getchildrows("myrelation") %>>

  3.在页面顶部添加下列指令(请注意,是在.aspx文件中):

  <%@ import namespace="system.data" %>

  在.cs文件中,将page_load中的注释部分(//这里将要插入子表的数据绑定)替换成下列代码:

sqldataadapter cmd2 = new sqldataadapter("select * from titleauthor",cnn);
cmd2.fill(ds,"titles");
ds.relations.add("myrelation",
ds.tables["authors"].columns["au_id"],
ds.tables["titles"].columns["au_id"]);

  4.保存并编译应用程序。
  .在浏览器中察看修改后的页面。显示格式类似于下面的格式:

172-32-1176
ps3333
213-46-8915
bu1032
bu2075
238-95-7766
pc1035
267-41-2394
bu1111
tc7777
...

完整的代码

nestedrepeater.aspx
<%@ page language=c# inherits="yourprojectname.nestedrepeater" %>
<%@ import namespace="system.data" %>

<html>
<body>
<form runat=server>

<!-- start parent repeater -->
<asp:repeater id="parent" runat="server">
  <itemtemplate>
   <b><%# databinder.eval(container.dataitem,"au_id") %></b><br>

   <!-- start child repeater -->
   <asp:repeater id="child" datasource=<%# ((datarowview)container.dataitem)
.row.getchildrows("myrelation") %> runat="server">
    <itemtemplate>
      <%# databinder.eval(container.dataitem, "[\"title_id\"]")%><br>
     </itemtemplate>
   </asp:repeater>
   <!-- end child repeater -->

 </itemtemplate>
</asp:repeater>
<!-- end parent repeater -->

</form>
</body>
</html>
nestedrepeater.aspx.cs
using system;
using system.data;
using system.data.sqlclient;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;

namespace yourprojectname
{
 public class nestedrepeater : system.web.ui.page
  {
   protected system.web.ui.webcontrols.repeater parent;
   public nestedrepeater()
   {
     page.init += new system.eventhandler(page_init);
   }
   public void page_load(object sender, eventargs e)
   {
     //create the connection and dataadapter for the authors table.
     sqlconnection cnn = new sqlconnection("server=(local);database=pubs;uid=sa;pwd=;");
     sqldataadapter cmd1 = new sqldataadapter("select * from authors",cnn);

     //create and fill the dataset.
     dataset ds = new dataset();
     cmd1.fill(ds,"authors");

     //create a second dataadapter for the titles table.
     sqldataadapter cmd2 = new sqldataadapter("select * from titleauthor",cnn);
     cmd2.fill(ds,"titles");

     //create the relation bewtween the authors and titles tables.
     ds.relations.add("myrelation",
     ds.tables["authors"].columns["au_id"],
     ds.tables["titles"].columns["au_id"]);

     //bind the authors table to the parent repeater control, and call databind.
     parent.datasource = ds.tables["authors"];
     page.databind();

     //close the connection.
     cnn.close();
   }
   private void page_init(object sender, eventargs e)
   {
     initializecomponent();
   }
   private void initializecomponent()
   {
    this.load += new system.eventhandler(this.page_load);
   }
  }
}


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·数据库开发个人总结(ADO.NET小结)-.NET教程,数据库应用
·怎么由DataSet将数据导入Excel?-.NET教程,数据库应用
·动态创建SQL Server数据库、表、存储过程-ASP教程,数据库相关
·Win32环境下动态链接库(DLL)编程原理-.NET教程,数据库应用
·封装的ADO.NET对数据库操作经典类-.NET教程,数据库应用
·在DataGridView中获得DataGridViewCheckBoxColumn的状态-ASP教程,数据库相关
·DataGrid使用心得(附大量代码)-ASP教程,数据库相关
·用代码创建DataGrid的多链接及checkbox事件响应-.NET教程,数据库应用
·ADO.NET 的最佳实践技巧-.NET教程,数据库应用
·转载: 用纯ASP代码实现图片上传并存入数据库中

最新文章
·根据数据表中数据,生成Powerpoint幻灯片-ASP教程,数据库相关
·DataGrid中的按钮反选事件与NamingContainer(命名容器)-downmoon-ASP教程,数据库相关
·使用用VB处理MYSQL数据库中二进制数据问题-.NET教程,VB.Net语言
·关于DataGridView中如何接收处于编辑状态下的当前信息-ASP教程,数据库相关
·在DataGridView中获得DataGridViewCheckBoxColumn的状态-ASP教程,数据库相关
·.net下访问Access数据库需要注意的问题-.NET教程,Asp.Net开发
·ActiveMQ4.1+Spring2.0的POJO JMS方案(上)-.NET教程,数据库应用
·ASP.NET 2.0中直接将Access数据库导入到Excel文件中-.NET教程,Asp.Net开发
·NET(C#)连接各类数据库-集锦-.NET教程,C#语言
·ASP.NET2.0连接SQL Server数据库详解-.NET教程,Asp.Net开发


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号