| 加入收藏| 设为首页| 联系我们

首页 站长学习 站长之家 源码下载 建站素材 书籍教程 常用工具
 您现在的位置: 动力中国 >> 网络编程 >> ASP.NET教程 >> 文章正文  
 ASP.NET 2.0高级数据处理之主从数据表
 

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

http://www.domcn.org  文章来源:本站收藏  点击数:

  关键字:ASP.NET 2.0高级数据处理之主从数据表

  在前面的文章中,我们已经知道如何将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>


ASP.NET 2.0高级数据处理之主从数据表
  • 上一篇文章:

  • 下一篇文章:
  •  热门文章
    普通文章 电子邮件改头换面 四公司畅谈未
    普通文章 PC病毒史上最声名狼藉的八大病
    普通文章 Rails系统中的AJAX开发技术简析
    普通文章 基于ASP.NET AJAX框架实现表单
    普通文章 开发ASP.NET AJAX客户端定制行
    普通文章 用JFreeChart对JSP报表进行增强
    普通文章 SQL Server 2005上的CLR和ADO.
    普通文章 SQL Server 2005的XML支持机制
    普通文章 Firefox中标签式浏览技巧大全
    普通文章 Tomcat中的Session和Cookie大揭
     
     推荐文章
    推荐文章 把Google地图嵌入网页 就是这么
    推荐文章 迅雷搜索候选资源出错的解决
    推荐文章 轻松去除迅雷里的各种广告和资
    推荐文章 突破限制 免费领养到QQ空间五级
    推荐文章 Rational统一过程RUP贴近中小软
    推荐文章 构建自己的轻量级XML DOM分析程
    推荐文章 WPS Office 2007技巧:妙用配置
    推荐文章 Excel 2007:求余数函数实用进阶
    推荐文章 浅谈ASP.NET的Postback
    推荐文章 软件开发中项目需求管理简述
     
     相关文章
    没有相关文章
    设为首页 | 加入收藏 | 广告合作 | 联系站长 | 版权申明 |
    动力中国为网友提供免费学习资料,可用资源,如果您认为我们的相关内容侵害到了您的权利请联系管理员
    Copyright © 2006-2008 domcn.org All Rights Reserved.