新客网
首页 | 新闻 | 系统·网络·服务器·安全 | 工具·办公 | 编程·数据库 | 图象·网页·运营 | 硬件·存储 | 专题教程 | 论坛·old
 → 当前位置:首页 > 教程 > 编程开发 > Asp.net教程 > 正文

ASP.NET 2.0高级数据处理之主从数据表

XKER.COM   2006-11-23 10:29:11  来源:  收藏本文

  在前面的文章中,我们已经知道如何将ControlParameter(控件参数)与GridView的SelectedValue属性相关联以实现主-从数据表。SelectedValue属性返回DataKeyNames属性所指定的第一个字段的值。你也可以给DataKeyNames属性指定多个用逗号分隔的字段值,例如,你可能需要把多个值传递到从表的数据源。这些额外的键字段值是通过SelectedDataKey属性暴露的,它返回一个DataKey对象,包含键字段的名称/值对(pair)。通过在表达式中设置PropertyName属性(例如SelectedDataKey.Values("title_id")),ControlParameter甚至于可以引用这些键。

<asp:ControlParameter Name="FirstKey" ControlID="MasterGrid" PropertyName="SelectedDataKey.Values[0]"/>
<asp:ControlParameter Name="SecondKey" ControlID="MasterGrid" PropertyName="SelectedDataKey.Values[1]"/> 

  下面的例子演示的代码枚举了DataKeys集合,并从GridView的SelectedDataKey中获取键字段的值:

Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Write("<b>SelectedDataKey.Value: </b>" & Server.HtmlEncode(GridView1.SelectedDataKey.Value) & "<br />")
Response.Write("<b>DataKey Field 1: </b>" & Server.HtmlEncode(GridView1.SelectedDataKey.Values("au_id")) & "<br />")
Response.Write("<b>DataKey Field 2: </b>" & Server.HtmlEncode(GridView1.SelectedDataKey.Values("title_id")) & "<br />")
End Sub 
Protected Sub GridView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs)
Dim key As DataKey
Response.Write("<b>GridView DataKeys: </b><br />")
For Each key In GridView1.DataKeys
Response.Write(Server.HtmlEncode(key.Values(0)) & ", ")
Response.Write(Server.HtmlEncode(key.Values(1)) & "<br/>")
Next
End Sub 

  前面的主-从表示例把从表的数据显示在窗体的一个独立的控件中,但是有时候我们希望从表控件是嵌套在主表控件上,作为主表的一部分来显示的。为了实现这种功能,你必须把从表控件和相关的数据源都包含到主表控件的模板中,并带有一个数据源参数,让该参数从主表数据源的字段中获取值。由于使用这种方式的时候,没有可供关联的宣告式参数对象,你必须通过在代码中编程来设置参数值。当主表控件的数据项进行绑定的时候,你可以在主表控件的某个事件处理(例如FormView的DataBound事件)中设置参数值。下面的例子演示了这种技术。

<script runat="server">
Protected Sub FormView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs)
OrderDetailsDataSource.SelectParameters("OrderID").DefaultValue = FormView1.DataItem("OrderID")
End Sub
</script>

<asp:FormView DataSourceID="OrdersDataSource"……>
<ItemTemplate>
<b>OrderID:</b>
<asp:Label ID="OrderIDLabel" runat="server" Text=’<%# Eval("OrderID") %>’></asp:Label><br />
……
<asp:GridView DataSourceID="OrderDetailsDataSource" ……>
……
</asp:GridView>
</ItemTemplate>
</asp:FormView>

<asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:Northwind %>" ID="OrdersDataSource" runat="server" SelectCommand="SELECT [OrderID], [OrderDate], [ShipCity], [ShipCountry] FROM [Orders]">
</asp:SqlDataSource>
<asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:Northwind %>" ID="OrderDetailsDataSource" runat="server" SelectCommand="SELECT [Order Details].-

本新闻共2页,当前在第1页  1  2  

上一篇教程:ASP.NET 2.0高级数据处理之处理Null值
下一篇教程:没有了
收藏本文】 【我要投稿】 【打印本文】 【论坛讨论】 【关闭窗口

相关文章
·ASP.NET 2.0高级数据处理之处理Null值·Access数据库在asp.net程序中相对路径的解决方
·Object/DataSet Relational Mapping(对象/数据·在ASP.NET中使用AJAX的简单方法
·轻松加密ASP.NET 2.0 Web程序配置信息·ASP.NET 2.0 中 Treeview 的Checkboxes 选中根
·使用ASP.Net Forms模式实现WebService身份验证·ASP.NET2.0调用MySql的存储过程
·DataGridView 的分页处理·写个偷全国公交数据库的程序
·ASP.NET生成高质量缩略图通用函数(c#代码)·利用正则表达式去掉html代码
·ASP.NET 2.0 中的 Theme 功能·如何在页面之间传递数据量较大的复杂数据
·小技巧:让Apache支持ASP.NET·ASP.NET 配置文件层次结构和继承

学院文章搜索
  
推荐文章
·Linux服务器前台常出现的提
·Gmail邮箱里快速群发邮件的
·ASP.NET 2.0高级数据处理之
·复杂电脑简单用:二十八款系
·构建可配置PHP应用程序的正
·理解防火墙Log与端口扫描的
·独门绝技!防木马三招两式
·安全使用网上银行的七点建
·限制网上行为 从WorkWin限
·无线技术在Linux操作系统中
阅读排行
·免费代理IP(每日更新)
·windows下如何修改右键菜单
·清除猖狂的Sxs.exe病毒
·DOS下对系统重新进行分区
·DOS常用命令
·编程过把瘾:自己动手写操
·DOS下常用的相关网络命令
·Fdisk分区详解
·超详细:用Macfee打造自己的
·国内数据恢复市场内幕揭秘
专题教程
·PHP教程专题
·MySQL 专题
·数据恢复指南 专题
·Web服务器专题
·DB2 9数据库专题
·ghost教程 专题
·局域网技术专题
·虚拟机专题
·CDN加速技术专题
·注册表教程专题
最新文章
·ASP.NET 2.0高级数据处理之
·Linux操作系统中的七件超厉
·Linux服务器前台常出现的提
·Word 2007 beta2中又挖出两
·Gmail邮箱里快速群发邮件的
·如何在Windows XP 家庭版中
·ASP.NET 2.0高级数据处理之
·滚动字幕的制作 marquee
·Access数据库在asp.net程序
·用C#访问ACCESS数据库问题
·C#中使用net share命令时要
·SQL Server 与Oracle的不同
·网页刷新方法
·Object/DataSet Relationa
·MySQL数据库中的安全解决方
设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003 - 2006 XKER Inc. All Rights Reserved
新客网 版权所有