- 浏览: 7960076 次
- 性别:
- 来自: 广州
-
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
原文发表在http://dev.yesky.com/msdn/493/2079993_1.shtml上
在本文,将继续介绍asp.net 2.0中的其他技巧。首先我们来看下如何使用gridview来实现一个master-detail主从关系的应用,以实现一对多的关系,因为这是十分普遍的web应用。在asp.net 1.1中,可能要编写比较多的代码以实现这样的应用,但在asp.net 2.0中,已经可以很方便地实现这样的主从关系的应用了。下面分步来介绍:
我们以sql server 2000中的northwind数据库为例子进行介绍。该数据库中存在很多一对多关系的例子。这里,我们以products表和order detail表予以介绍。其中,我们实现这样的一个应用,通过dropdownlist下拉框,当用户每次选择一种商品时,可以马上通过gridview显示在所有的订单中,有哪些订单中曾经订购了该商品,两表构成典型的一对多关系。
首先,我们要先将商品从product表中取出来,并绑定到dropdownlist中去。我们拖拉一个sqldatasource控件到窗体中去,命名为productListingDataSource,然后设置将product表的productid,productname字段取出,并按照productname进行排序,然后再拖拉一个dropdownlist控件到窗体中,点选该控件的smart tag智能标记,在弹出的菜单中,选择data source为刚才加入的sqldatasource的名称(就是productListingDataSource),并选择productname作为在下拉框中要显示的文本,同时,要将prodcutid设置为下拉框的选定值。如下图所示:
接下来,我们再拖拉一个sqldatasource控件到窗体中去,命名为orderDetailsForProduct,在这个控件中,我们将其绑定到order detail表中,由于不需要返回所有的字段,所以我们只需要返回orderid,unitprice和quantity三个字段就可以了,并且我们需要与dropdownlist构成关联,所以我们要设置适当的sql语句.在asp.net 2.0中,这个也可以通过菜单的操作予以实现。
我们在设置sqldatasource属性的时候,当遇到如下图所示的步骤时,点选"where"按钮.
在点"where"按钮后,在弹出的菜单中(如下图所示),设置column为productid, 设置操作符operator为"=",设置source下拉框的值为control,表示要与来自控件的值进行绑定,选择后,再在右边的parameter properties属性窗口中的conrol id设置为刚才我们添加dropdownlist控件名的名称,最后,记得按"add"按钮,这样,就设置好sql语句了.
最后,增加一个gridview控件,将其于刚才添加的名为orderDetailsForProduct的数据源控件绑定.这样就大功告成了.运行后,结果如下图所示:
可以看到,当选择dropdownlist中的不同商品时,gridview会显示涉及该商品的不同订单的详细资料.程序的代码如下:
<form id="form1" runat="server">
<div>
<h2>You are Viewing Order Detail Information for Orders
that Have Included Shipments of the Selected Product</h2>
<asp:SqlDataSource ID="productListingDataSource"
Runat="server" ConnectionString=
"<%$ ConnectionStrings:NWConnectionString %>"
SelectCommand="SELECT [ProductID],
[ProductName] FROM [Products]">
</asp:SqlDataSource>
<asp:DropDownList ID="productSelector" Runat="server"
DataSourceID="productListingDataSource"
DataTextField="ProductName" DataValueField="ProductID"
AutoPostBack="True">
</asp:DropDownList>
<asp:SqlDataSource ID="orderDetailsForProduct" Runat="server"
SelectCommand="SELECT [OrderID], [ProductID], [UnitPrice],
[Quantity] FROM [Order Details] WHERE ([ProductID] =
@ProductID)"
ConnectionString=
"<%$ ConnectionStrings:NWConnectionString%>"
DataSourceMode="DataReader">
<SelectParameters>
<asp:ControlParameter Name="ProductID" Type="Int32"
ControlID="productSelector"
PropertyName="SelectedValue"></asp:ControlParameter>
</SelectParameters>
</asp:SqlDataSource><asp:GridView ID="orderDetailsGridView"
Runat="server" DataSourceID="orderDetailsForProduct"
AutoGenerateColumns="False" DataKeyNames="OrderID"
BorderWidth="1px" BackColor="LightGoldenrodYellow"
GridLines="None" CellPadding="2" BorderColor="Tan"
ForeColor="Black">
<FooterStyle BackColor="Tan"></FooterStyle>
<PagerStyle ForeColor="DarkSlateBlue"
HorizontalAlign="Center" BackColor="PaleGoldenrod">
</PagerStyle>
<HeaderStyle Font-Bold="True"
BackColor="Tan"></HeaderStyle>
<AlternatingRowStyle
BackColor="PaleGoldenrod"></AlternatingRowStyle>
<Columns>
<asp:BoundField ReadOnly="True" HeaderText="Order ID"
InsertVisible="False" DataField="OrderID"
SortExpression="OrderID">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundField>
<asp:BoundField HeaderText="Quantity"
DataField="Quantity" SortExpression="Quantity"
DataFormatString="{0:d}">
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:BoundField>
<asp:BoundField HeaderText="Unit Price"
DataField="UnitPrice" SortExpression="UnitPrice"
DataFormatString="{0:c}">
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:BoundField>
</Columns>
<SelectedRowStyle ForeColor="GhostWhite"
BackColor="DarkSlateBlue"></SelectedRowStyle>
</asp:GridView>
</div>
</form>
接下来,我们以另外一种更直观的方式,实现master-detail的主从关系.我们以northwind数据库的order表和order detail表为例子,实现这样的应用,当在gridview展示的所有订单中,当点选某一具体的订单,可以在右侧显示该订单的详细具体信息。
步骤和上例子十分类似,先添加一个sqldatasource控件,命名为ordersDataSource,绑定到northwind数据库的orders表,只需要选择orderid,company,orderdate三个字段就可以了,然后添加一个gridview控件,选择控件右上角的"smart tag"智能标记,在弹出的菜单中,设置gridview控件为"enable paging"和"enable selection",即表示可以允许gridview分页和允许选择gridview中的每一行。
接着选择"smart tag"标记,在弹出的菜单中选择"edit columns",对每一列进行具体设置,如下图,添加一个select类型的command field类型的字段,并设置其selecttext属性为"显示订单详细信息",
接下来,将该gridview控件绑定到ordersDataSource中去.再添加另外一个sqldatasource控件,命名为orderDetailsDataSource,按上文提到的方法,将其绑定到order detail表中,并且设置其where子句,通过order id,与order表中的orderid进行连接.这些可以通过菜单进行设置,如下图所示:
最后,可以运行程序了.结果如下两图所示:
可以清楚的看到,当选择左边的gridview的每一行时,如果点了"显示订单信息"的话,就会在右边显示这张订单的详细信息。
此外,为了能使gridview能分页,则添加如下代码:
void orderGridView_PageIndexChanged(object sender, EventArgs e)
{
orderGridView.SelectedIndex = -1;
}
完整的代码如下:
<form id="form1" runat="server">
<div style="width:50%;float:left;padding-right:10px;">
<h2>Select an Order from the Left...</h2>
<asp:SqlDataSource ID="ordersDataSource" Runat="server"
SelectCommand="SELECT dbo.Orders.OrderID,
dbo.Customers.CompanyName, dbo.Orders.OrderDate FROM
dbo.Orders INNER JOIN dbo.Customers ON dbo.Orders.CustomerID = dbo.Customers.CustomerID"
ConnectionString=
"<%$ ConnectionStrings:NWConnectionString %>">
</asp:SqlDataSource>
<asp:GridView ID="orderGridView" Runat="server"
DataSourceID="ordersDataSource" DataKeyNames="OrderID"
AutoGenerateColumns="False" AllowPaging="True"
BorderWidth="1px" BackColor="#DEBA84"
CellPadding="3" CellSpacing="2" BorderStyle="None"
BorderColor="#DEBA84"
OnPageIndexChanged="orderGridView_PageIndexChanged">
<FooterStyle ForeColor="#8C4510"
BackColor="#F7DFB5"></FooterStyle>
<PagerStyle ForeColor="#8C4510"
HorizontalAlign="Center"></PagerStyle>
<HeaderStyle ForeColor="White" Font-Bold="True"
BackColor="#A55129"></HeaderStyle>
<Columns>
<asp:CommandField ShowSelectButton="True"
SelectText="View Order Details"></asp:CommandField>
<asp:BoundField HeaderText="Company"
DataField="CompanyName"
SortExpression="CompanyName"></asp:BoundField>
<asp:BoundField HeaderText="Order Date"
DataField="OrderDate" SortExpression="OrderDate"
DataFormatString="{0:d}">
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:BoundField>
</Columns>
<SelectedRowStyle ForeColor="White" Font-Bold="True"
BackColor="#738A9C"></SelectedRowStyle>
<RowStyle ForeColor="#8C4510" BackColor="#FFF7E7"></RowStyle>
</asp:GridView>
</div>
<div>
<h2>... and View the Order Details on the Right</h2>
<asp:SqlDataSource ID="orderDetailsDataSource" Runat="server"
SelectCommand="SELECT dbo.[Order Details].OrderID,
dbo.Products.ProductName, dbo.[Order Details].UnitPrice,
dbo.[Order Details].Quantity, dbo.[Order Details].Discount
FROM dbo.[Order Details] INNER JOIN dbo.Products
ON dbo.[Order Details].ProductID = dbo.Products.ProductID
WHERE dbo.[Order Details].OrderID = @OrderID"
ConnectionString="<%$ ConnectionStrings:NWConnectionString %>">
<SelectParameters>
<asp:ControlParameter ControlID="orderGridView"
Name="OrderID" Type="Int32"
PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
<asp:GridView ID="detailsGridView" Runat="server"
DataSourceID="orderDetailsDataSource"
AutoGenerateColumns="False" BorderWidth="1px"
BackColor="#DEBA84" CellPadding="3"
CellSpacing="2" BorderStyle="None" BorderColor="#DEBA84">
<FooterStyle ForeColor="#8C4510" BackColor="#F7DFB5"></FooterStyle>
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center"></PagerStyle>
<HeaderStyle ForeColor="White" Font-Bold="True" BackColor="#A55129"></HeaderStyle>
<Columns>
<asp:BoundField HeaderText="Product"
DataField="ProductName"
SortExpression="ProductName"></asp:BoundField>
<asp:BoundField HeaderText="Unit Price"
DataField="UnitPrice" SortExpression="UnitPrice"
DataFormatString="{0:c}">
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:BoundField>
<asp:BoundField HeaderText="Quantity"
DataField="Quantity" SortExpression="Quantity">
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:BoundField>
<asp:BoundField HeaderText="Discount"
DataField="Discount" SortExpression="Discount"
DataFormatString="{0:P}">
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:BoundField>
</Columns>
<SelectedRowStyle ForeColor="White" Font-Bold="True"
BackColor="#738A9C"></SelectedRowStyle>
<RowStyle ForeColor="#8C4510" BackColor="#FFF7E7"></RowStyle>
</asp:GridView>
</div>
</form>
发表评论
-
很高兴能入住博客园
2005-01-15 19:24 1633很高兴申请能被批准,十分高兴。因为我主要搞WEB编程的 ... -
一些我翻译或原作的文章
2005-01-15 19:50 1348平时有空的话,比较喜欢看外国的.net站点,因此也翻译些好 ... -
asp.net 中对datagrid中的BUTTON应用CSS样式
2005-01-15 20:02 2500在asp.net中,如果要对某个按钮,TEXTBOX应用样式, ... -
asp.net 2.0中的ValidationGroup
2005-01-15 20:04 1550在asp.net 1.1中,对于验证类控件,在使用时,遇到有的 ... -
asp.net 2.0中的弹出对话框
2005-01-15 20:05 1408在asp.net 1.1中,要做1个弹出的对话框的话,一般是在 ... -
asp.net 2.0中设定默认焦点按钮
2005-01-15 20:05 1586在asp.net 1.1中,当要在page_load页面中,设 ... -
asp.net 2.0中使用sitemapDATAsource做页面导航
2005-01-15 20:07 1728在ASP.NET 2.0中,没有专门的页面导航控件,但可以使用 ... -
asp.net 2.0中TREEVIEW中动态增加结点
2005-01-15 20:08 2052在asp.net 2.0中,要动态从数据库中取出内容,动态增加 ... -
一个.net实现的ubb类
2005-01-15 20:09 1509using System; using System.Text ... -
ASP.NET 2.0中改变passwordrecovery发邮件时的信息
2005-01-15 20:11 1402在ASP.NET 2.0的登陆控件中(详细见我的文章,www. ... -
asp.net 2.0中的Cross PAGE REQUEST
2005-01-15 20:12 1333大家还记得吧,在ASP中,一个页面里,只要有一个Form表单, ... -
asp.net 2.0中一次性更新所有GRIDVIEW的记录 (翻译)
2005-01-15 20:13 1342在asp.net 2.0中,gridview控件是十分不错的控 ... -
ASP.NET 2.0中GRIDVIEW排序
2005-01-15 20:15 1973虽然是BETA 1的,但原理其实和。NET 1。1的差不多,下 ... -
即将有很多介绍WEBSERVICE互相整合的录象
2005-01-15 23:07 1225如何做到JAVA和。NET之间相互使用WEBSERVICE呢? ... -
asp.net 2.0的又一新特性
2005-01-16 20:49 1161ASP.NET 2.0真是多新特性呀,今天看资料才发现的。比如 ... -
上周听SMARTCLIENT讲座感受
2005-01-20 13:01 1389上周,在广州的SMARTCLIENT讲座上,终于见到了开心 ... -
BOXING AND UNBOXING FOR BEGINNER
2005-01-20 21:04 1414看了CODEPROJECT上篇讲BOXING的文章,觉得不错, ... -
基于WEBSEVRICE的课件搜索系统(一)
2005-01-28 22:47 1473临到年尾了,手上 ... -
基于WEBSERVICE的课件搜索系统(二)
2005-01-28 22:50 12604.3.2 WebService代理中 ... -
基于WEBSERVICE的课件系统(三)
2005-01-28 22:58 1687在前面的<<基于WEBSERVICE的课件系统(1 ...
相关推荐
6. **数据访问**:ADO.NET是.NET Framework中用于数据库访问的组件,ASP.NET 2.0通过ADO.NET与各种数据库(如SQL Server)交互,提供了GridView、FormView等控件方便地展示和操作数据。 7. ** Membership 和 Role ...
2. **控件与数据绑定**:书中会详细介绍ASP.NET 2.0的各种服务器控件,如GridView、DetailsView、FormView等,以及如何利用数据绑定机制(例如,DataSource控件)来连接数据库并展示数据。 3. **状态管理**:ASP...
ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它建立在.NET Framework的基础之上,为开发者提供了丰富的功能和高效的语言支持。本资源"ASP.NET 2.0网络编程从入门到精通-修订"显然是一个教程文档,旨在...
此"天轰穿ASP.NET2.0视频教程"针对初学者和进阶开发者,通过详细的教学指导,帮助用户掌握ASP.NET 2.0的核心概念和技术。 1. **ASP.NET 2.0架构** ASP.NET 2.0基于.NET Framework 2.0,引入了统一的页面生命周期...
3. **数据绑定**:ASP.NET 2.0提供了强大的数据绑定机制,如DataSource控件和GridView控件,允许开发者轻松地从数据库或其他数据源检索和显示数据。课程可能包含如何使用这些控件进行数据操作的实例。 4. **状态...
本教程将深入探讨ASP.NET 2.0的核心特性,以及如何利用这些特性进行动态网站的开发。 一、ASP.NET 2.0概述 ASP.NET 2.0是ASP.NET的第二个主要版本,相比1.0版,它引入了许多新特性和改进。这些改进包括:更高效的...
在ASP.NET 2.0版本中,引入了许多新特性,如改进的页面生命周期管理、母版页(Master Pages)用于统一网站布局、自定义控件增强用户体验、配置管理工具简化部署过程、以及ASP.NET AJAX框架实现页面无刷新交互等。...
ASP.NET 2.0中GridView无限层复杂表头的实现 在ASP.NET 2.0中,实现GridView无限层复杂表头是一项非常有挑战性的任务。为了实现这个目标,我们需要了解GridView控件的工作机制和其在ASP.NET 2.0中的应用。 首先,...
3. **数据绑定**:ASP.NET 2.0提供了强大的数据绑定机制,如DataSource控件和Repeater、GridView、FormView等数据展示控件。这使得数据的检索、处理和显示变得更加简单,尤其适合构建数据驱动的Web应用。 4. **主题...
1. 用户认证与授权系统:展示如何利用ASP.NET 2.0的身份验证和授权机制,实现用户登录、注册、权限控制等功能。 2. 数据展示与分页:通过GridView、Repeater等控件,演示如何从SQL Server 2005中检索并展示数据,...
### ASP.NET 2.0 - GridView: 深入理解与应用 在ASP.NET 2.0中,Microsoft推出了一个非常强大的控件——GridView,它继承了DataGrid的强大功能,并在此基础上进行了大量的改进和增强。本文将详细介绍GridView控件的...
《ASP.NET 2.0网络编程自学手册》是一本针对初学者和有一定基础的开发者设计的全面教程,旨在帮助读者掌握ASP.NET 2.0框架下的网络编程技术。该书涵盖了从基础知识到高级特性的全面内容,是学习ASP.NET 2.0不可或缺...
ASP.NET 2.0是微软开发的一个强大的Web应用程序框架,用于构建动态网站、Web应用程序和服务。在该框架中,静态页生成技术是一个重要的优化手段,它有助于提高网站的性能和搜索引擎优化(SEO)。本篇文章将深入探讨...
书中强调了如何利用ASP.NET 2.0的内置功能来减少编程工作量,比如主题、成员关系、个性化、本地化、模板页面、Web Part和缓存等新功能。这些特性使得开发者能够更加高效地构建可扩展和易于维护的网站。 此外,书中...
ASP.NET 2.0的GridView和DetailsView控件能方便地展示和编辑数据,结合论坛数据库架构(如主题、回复、用户信息),可以构建一个完整的讨论平台。 4. 在线投票功能模块:在线投票需要记录用户选择并实时更新结果。...
《ASP.NET 2.0 宝典》是一本深度探讨ASP.NET 2.0开发技术的专业书籍,其随书光盘包含了一系列的示例代码和教程,帮助读者深入理解和掌握这个强大的Web应用程序开发框架。虽然上传的文件只是部分内容,但它们涵盖了多...
本资源"精通ASP.NET 2.0典型模块设计与实现源代码"提供了一整套关于如何设计和实现ASP.NET 2.0应用中的关键模块的源代码示例,对于深入理解该技术以及提升开发技能具有重要价值。 1. **页面生命周期与事件处理**: ...
"济南招贴网(.net2.0)"这个文件可能是一个使用ASP.NET 2.0开发的网站源代码,包含了构建类似分类广告网站所需的所有文件和设置。源码分析可以帮助我们理解如何在实际项目中应用上述ASP.NET 2.0特性,学习网站架构...
3. **数据绑定和数据源控件**:ASP.NET 2.0提供了多种数据绑定方法,如`DataSource`控件和`GridView`,方便开发者与数据库交互。在`ch07code.zip`和`ch10code.zip`中,可以找到关于如何绑定数据并显示在网页上的示例...