GridView、FromView、DetailsView实现主从表需要注意的几个细节
2009-12-01 10:45
387 查看
摘录自MSDN:http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview.selecteddatakey.aspx
取GridView1的属性SelectedDataKey作为Parameter,必须使用SelectedDataKey[i] 来指定是第几个值,否则会报类型不匹配的错误了。
如果GridView的SelectedDataKey有多个值,SelectedValue只会取第一个做为值。
不过DetailsView的SelectedDataKey有多个值,SelectedValue是可以取到多个值的。
下面的示例演示如何在主/从方案中将第二个键字段作为参数使用。使用 GridView 控件显示 Northwind 数据库的 Order Details 表中的记录。在 GridView 控件中选择某一记录时,将在 DetailsView 控件中显示来自 Products 表的产品详细信息。ProductID 是 GridView 控件中的第二个键名称。若要访问第二个键,请将 GridView1.SelectedDataKey[1] 的值用作 DetailsView 控件的 SqlDataSource 控件的 ControlParameter 对象的 PropertyName。
取GridView1的属性SelectedDataKey作为Parameter,必须使用SelectedDataKey[i] 来指定是第几个值,否则会报类型不匹配的错误了。
如果GridView的SelectedDataKey有多个值,SelectedValue只会取第一个做为值。
不过DetailsView的SelectedDataKey有多个值,SelectedValue是可以取到多个值的。
下面的示例演示如何在主/从方案中将第二个键字段作为参数使用。使用 GridView 控件显示 Northwind 数据库的 Order Details 表中的记录。在 GridView 控件中选择某一记录时,将在 DetailsView 控件中显示来自 Products 表的产品详细信息。ProductID 是 GridView 控件中的第二个键名称。若要访问第二个键,请将 GridView1.SelectedDataKey[1] 的值用作 DetailsView 控件的 SqlDataSource 控件的 ControlParameter 对象的 PropertyName。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
<head runat="server">
<title>Selecting Data Key Values</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SqlDataSource
ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:NorthWindConnectionString%>"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT * FROM [Order Details]">
</asp:SqlDataSource>
<asp:SqlDataSource
ID="SqlDataSource2"
runat="server"
ConnectionString="<%$ ConnectionStrings:NorthWindConnectionString%>"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT * FROM [Products]WHERE [ProductID] = @productid">
<SelectParameters>
<asp:ControlParameter
Name="productid"
ControlID="GridView1"
PropertyName="SelectedDataKey[1]" />
</SelectParameters>
</asp:SqlDataSource>
</div>
<asp:GridView
ID="GridView1"
runat="server"
AllowPaging="True"
AutoGenerateColumns="False"
DataKeyNames="OrderID,ProductID" DataSourceID="SqlDataSource1">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="OrderID" HeaderText="OrderID" ReadOnly="True"/>
<asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" />
<asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
<asp:BoundField DataField="Quantity" HeaderText="Quantity" />
<asp:BoundField DataField="Discount" HeaderText="Discount" />
</Columns>
</asp:GridView>
<br />
<asp:DetailsView
ID="DetailsView1"
runat="server"
AutoGenerateRows="False"
DataKeyNames="ProductID"
DataSourceID="SqlDataSource2"
Height="50px" Width="125px">
<Fields>
<asp:BoundField
DataField="ProductID"
HeaderText="ProductID"
InsertVisible="False"
ReadOnly="True" />
<asp:BoundField DataField="ProductName" HeaderText="ProductName"/>
<asp:BoundField DataField="SupplierID" HeaderText="SupplierID"/>
<asp:BoundField DataField="CategoryID" HeaderText="CategoryID" />
<asp:BoundField DataField="QuantityPerUnit" HeaderText="QuantityPerUnit" />
<asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
<asp:BoundField DataField="UnitsInStock" HeaderText="UnitsInStock" />
<asp:BoundField DataField="UnitsOnOrder" HeaderText="UnitsOnOrder" />
<asp:BoundField DataField="ReorderLevel" HeaderText="ReorderLevel" />
<asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued" />
</Fields>
</asp:DetailsView>
</form>
</body>
</html>
相关文章推荐
- Gridview 和DetailsView FormView细节注意
- MVC模式实现用户登录练习中遇到的问题和需要注意的细节
- 编写量化策略需要注意的几个细节问题
- 【PHP】在php文件上传时需要注意的几个细节
- 有N个正实数(注意是实数,大小升序排列) x1 , x2 ... xN,另有一个实数M。 需要选出若干个x,使这几个x的和与 M 最接近。 请描述实现算法,并指出算法复杂度
- 在ListBox中实现右键菜单,需要注意的细节
- [javase学习笔记]-7.5 构造函数需要注意的几个细节
- 自定义ViewGroup时需要注意的细节点
- 在Android 实现SD卡热插拔机制时,需要注意的几个方面
- 几个细节需要注意
- Qt打开外部程序和文件夹需要注意的细节(注意QProcess的空格问题,以及打开本地文件时,需要QUrl::fromLocalFile才可以)
- 自行实现HTTP协议时需要注意的几个地方
- HorizontalScrollView包裹GridView左右滑动但是GridView前面需要有一个imageview怎么实现
- iOS开发tableview二级联动的细节实现中注意的细节总结
- ASP.NET MVC 自定义路由中几个需要注意的小细节
- WebView使用时需要注意的细节问题(持续总结)
- JAVA socket通信中需要注意的几个小细节
- javaScript数据类型和变量需要注意的几个细节
- 曾经遇到的一个面试题,快速排序用链表实现,算法和以前的相似,需要注意一些细节处理
- 【android】GridView几个比较实用的属性以及需要注意的问题