潜山论坛,潜山网,天柱山论坛

 找回密码
 注册会员
查看: 610|回复: 1

网奇-ASP.NET2.0利用Gridview实现主从关系及网站建设介绍

[复制链接]
发表于 2013-3-28 11:28 | 显示全部楼层 |阅读模式

马上注册,即可查看完整内容,享用更多功能,让你轻松玩转潜山论坛。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
网奇主要从事网站建设,软件开发,系统开发,模板制作,域名主机和网络营销等,主要产品包括网奇CMS网站管理系统、网奇Eshop网络商城系统、网奇E生活、网奇CWMS企业网站管理系统、地方门户网站系统、网奇E游通旅游网站管理系统、网奇IOS智能在线订单系统、E客通在线客服系统、网奇E站通智能建站系统。更多详情请点击:建网站多少钱如何免费建网站影楼模板怎样网上赚钱

网奇:ASP.NET2.0利用Gridview实现主从关系首先我们来看下如何使用gridview实现一个 master -detail主从关系的应用,以实现一对多的关系,因为这是十分普遍的web应用。在asp.net 1.1中,可能要编写比较多的代码以实现这样的应用,但在asp.net 2.0中,已经可以很方便地实现这样的主从关系的应用了。下面分步来介绍:  我们以sql server2000中的northwind数据库为例子进行介绍。该数据库中存在很多一对多关系的例子。这里,我们以products表和order detail表予以介绍。其中,我们实现这样的一个应用,通过dropdownlist下拉框,当用户每次选择一种商品时,可以马上通过gridview显示在所有的订单中,有哪些订单中曾经订购了该商品,两表构成典型的一对多关系。  首先,我们要先将商品从product表中取出来,并绑定到dropdownlist中去。我们拖拉一个sqldatasource控件到窗体中去,命名为productListingDataSource,然后设置将product表的productid,productname字段取出,并按照productname进行排序,然后再拖拉一个dropdownlist控件到窗体中,点选该控件的smarttag智能标记,在弹出的菜单中,选择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>

网站建设节选:
(3)网站技术解决方案:采用自建服务器,还是租用虚拟主机;选择操作系统,用UNIX,Linux还是Window2000/NT。分析投入成本、功能、开发、稳定性和安全性等;采用系统性的解决方案(如IBM、HP)等公司提供的企业上网方案、电子商务解决方案?还是自己开发;网站安全性措施,防黑、防病毒方案;相关程序开发。如网页程序々3、爲?乂01、数据库程序等。
(4)网站内容规划:根据网站的0的和功能规划网站内容,一般企业网站应包括:公司简介、产品介绍、服务内容、价格信息、联系方式、网上定单等基本内容;电子商务类网站要提供会员注册、详细的商品服务信息、信息搜索查询、定单确认、付款、个人信息保密措施、相关帮助等;如果网站栏目比较多,则考虑采用网站编程专人负责相关内容。网站内容是网站吸引浏览者最重要的因素,无内容或不实用的信息不会吸引匆匆浏览的访客。可事先对人们希望阅读的信息进行调查,并在网站发布后调查人们对网站内容的满意度,以及时调整网站内容。
网站方案

2.图书馆管理软件的其功能(1)采用标准网络协议方式,保证资源共享
(2)实现馆际互借,保障文献资源的共享;
...(未完待续)
网奇cms网站系统是由网奇打造的一套当今为止国内最好的网站制作系统,本系统采用ASP.NET内核制作,更多详情请点击:网站logo设计企业网站模板下载免费网站制作动态网站制作教程
发表于 2013-3-28 19:21 | 显示全部楼层
心不在焉,,,
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|小黑屋|潜山论坛 ( 皖ICP备19002730号-1 )
法律顾问 涂有根 网站举报电话 0556-8281111 网站举报邮箱 124200840@qq.com

GMT+8, 2025-1-12 23:04 , Processed in 0.096853 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表