动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   .Net → 阅读文章

 「主/明细」资料表

作者来源: 
阅读 1528 人次 , 2006-3-29 4:30:00 


「主/明细」资料表常用来显示关联数据表间的数据。例如在myweb 数据库中有两个有关联的数据表,分别为会员数据表以及订单数据表;会员数据表中记录了基本的会员数据,而订单数据表记录了会员所下的订单。我们可以透过一个datagrid web控件将这个会员数据表呈现出来后,点选我们所要检视的会员;此时该会员所下过的订单细目就会列在另一个datagred web 控件中,如下图所示:


要达到这个功能,只要利用datagrid web 控件的onitemcommand 事件就可以办到。我们将主数据表的使用者名称以buttoncolumn 来呈现,这样使用者在这个字段上点选时,就会触发onitemcommand 事件;我们就可以透过这个事件取得使用者所点选的记录,并设定好条件将子记录从数据源取回后呈现在明细数据表上:

<%@import namespace=system.data.ado%>
<%@import namespace=system.data%>
<html>
<form runat="server">
<asp:datagrid id="dga" allowpaging="true" pagesize="5"
onpageindexchanged="dga_pagechg"
runat="server"
pagerstyle-mode="numericpages"
bordercolor="#808080"
headerstyle-font-names="courier new"
headerstyle-backcolor="#d1dceb"
headerstyle-font-bold="true"
headerstyle-horizontalalign="center"
autogeneratecolumns="false"
onitemcommand="dga_icmd">
<property name="columns">
<asp:buttoncolumn
headertext="姓名" datatextfield="username"/>
<asp:boundcolumn
headertext="电话" datafield="usertel"/>
<asp:boundcolumn
headertext="住址" datafield="useradd"/>
<asp:boundcolumn
headertext="电邮" datafield="useremail"/>
</property>
</asp:datagrid><br>
<asp:datagrid id="dgb" runat="server"
pagerstyle-mode="numericpages"
bordercolor="#808080"
headerstyle-font-names="courier new"
headerstyle-backcolor="#d1dceb"
headerstyle-font-bold="true"
headerstyle-horizontalalign="center"
autogeneratecolumns="false">
<property name="columns">
<asp:boundcolumn
headertext="日期" datafield="orderdate"/>
<asp:boundcolumn
headertext="产品名称" datafield="productname"/>
<asp:boundcolumn
headertext="单价" datafield="unitprice"/>
<asp:boundcolumn
headertext="数量" datafield="quantity"/>
<asp:boundcolumn
headertext="小计" datafield="total"/>
</property>
</asp:datagrid>
</form>
<asp:label id="label1" runat="server"/>
<script language="vb" runat="server">
dim dsca as adodatasetcommand=new adodatasetcommand("select * from
members", _
"provider=microsoft.jet.oledb.4.0;data
source=c:\inetpub\wwwroot\cr\ch08\myweb.mdb")
dim dsdataset as dataset=new dataset
sub page_load(sender as object, e as eventargs)
if page.ispostback=false then
dsca.selectcommand.commandtext="select * from members"
dsca.filldataset(dsdataset, "members")
dga.datasource=dsdataset.tables("members").defaultview
dga.databind()
end if
label1.text="您目前没有点选任何记录."
end sub
sub dga_pagechg(sender as object, e as datagridpagechangedeventargs)
dsca.filldataset(dsdataset, "members")
dga.datasource=dsdataset.tables("members").defaultview
dga.databind()
dgb.visible=false
end sub
sub dga_icmd(sender as object, e as datagridcommandeventargs)
dim shtr as short=(dga.currentpageindex * dga.pagesize) +
e.item.itemindex
if shtr>=0 then
dsca.filldataset(dsdataset, "members")
dsca.selectcommand.commandtext="select * from orders where
userid='" & _
dsdataset.tables("members").rows(shtr)("userid") & "'"
dsca.filldataset(dsdataset, "orders")
dgb.datasource=dsdataset.tables("orders").defaultview
dgb.databind()
dgb.visible=true
label1.text="总共有" & dsdataset.tables("orders").rows.count & "
笔记录"
end if
end sub
</script>
</html>

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:输出数据的润饰
· 下一篇:字段的排序
· .Net FrameWork SDK文档的例子演示
· vs.net 2003在FAT32格式的系统中安装
· ASP.NET
· DataGrid脚眉显示合计
· 开始 .Net的旅程(一)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077