首 页 | 精品电影 | 音乐天堂 | 在线游戏 | Flash MTV | 三湘书屋 | 幽默笑话 | 三湘图库 | 美女写真 | IT知识库 | QQ贴图 | 加入书签

网页制作网络编程图形图象操作系统冲浪宝典软件教学网络安全认证考试通信技术电子商务业内动态书籍教程原码

最近更新 文章分类 多媒体类 精品软件

本站搜索:
您的位置:三湘时空 -> IT知识库 -> 文章分类 -> ASP.NET技巧 -> ASP.NET 2.0高级数据处理之主从数据表
ASP.NET 2.0高级数据处理之主从数据表


文章类别:ASP.NET技巧 来源: 作者: 发表日期:2006-11-26 字体:[ ]

小游戏 | 在线影院 | 幽默笑话 | 源码下载 | Flash MTV | 音乐试听 | 书屋 | 美女写真

  在前面的文章中,我们已经知道如何将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].OrderID, Products.ProductName, [Order Details].UnitPrice, [Order Details].Quantity FROM [Order Details] INNER JOIN Products ON [Order Details].ProductID = Products.ProductID WHERE [Order Details].OrderID = @OrderID">
<SelectParameters>
<asp:Parameter Name="OrderID" />
</SelectParameters>
</asp:SqlDataSource>

  下面的例子演示了类似的技术,它使用的是DataList,处理DataList的ItemDataBound事件来设置数据源参数值。

<script runat="server">
Protected Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs)
Dim s As SqlDataSource = e.Item.FindControl("OrderDetailsDataSource")
s.SelectParameters("OrderID").DefaultValue = e.Item.DataItem("OrderID")
End Sub
</script>

上一篇:Linux操作系统中的七件超厉害的武器 下一篇:Photoshop文字特效:逼真立体镏金字
本栏目热门文章
·如何实现无刷新的DropdownList联动效果 2005-10-4
·使用HttpWebRequest向网站模拟上传数据 2005-10-4
·ASP.NET中文件上传下载方法集合 2006-5-28
·分享个极好的无刷新二级联动下拉列表,同样适用与firefox 2005-10-19
·ASP.NET2.0实现无刷新客户端回调 2005-11-13
·当DataSet中包含主/子表时,Update更新步骤 2005-10-6
·在Web DataGrid中当鼠标移到某行与离开时行的颜色发生改变( 2005-10-4
·ASP.NET中实现Flash与.NET的紧密集成 2005-11-21
·关于Asp.net页面Page_Load被执行两次的问题 2005-10-4
·用window.location.href实现刷新另个框架页面 2006-6-20
新近更新文章
·ASP.NET模拟其他用户进行关机 2006-12-7
·得到随机字符串算法 2006-12-7
·最简单的asp.net分页 2006-12-7
·Scott Mitchell 的ASP.NET 2.0数据教程之应用 2006-12-7
·深入聊聊Array的sort方法的使用技巧.详细点评protype. 2006-12-7
·用完HttpWebResponse时别忘了调用Close方法 2006-12-7
·SQL Server精简版支不支持ASP.NET? 2006-12-7
·对NDoc支持.net2.0的异常分析及解决 2006-12-7
·比较:HyperLink控件、LinkButton控件 之间的异同 2006-12-7
·ASP.NET 2.0高级数据处理之冲突检测 2006-12-7
首 页 | 软件发布 | 广告联系 | 下载帮助 | 意见反馈 | 网站地图
  CopyRight? 2002-2004 WWW.SXSKY.NET? All Rights Reserved
三湘时空 站长QQ:82675303 Email: