校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > ASP.NET 2.0中的數據操作之九:跨頁面的主/從報表

ASP.NET 2.0中的數據操作之九:跨頁面的主/從報表

熱門標簽:400電話辦理哪家性價比高 地圖標注專業團隊 塔城代理外呼系統 遂寧市地圖標注app 代理接電話機器人如何取消 地圖標注的公司有哪些 天心智能電銷機器人 濮陽外呼電銷系統怎么樣 地圖定位圖標標注

導言

  在前面的兩篇教程中,我們看到了如何在單一頁面中顯示主/從報表, 它使用DropDownList顯示主記錄,使用GridView或DetailsView顯示詳細信息. 另外一種常見的主/從報表模式是在一個頁面中顯示主記錄而在另一個頁面中顯示詳細信息.互聯網上的論壇,如www.asp.net ,就是該模式在實際應用中非常典型例子. Asp.Net論壇由多個子論壇組成: Getting Started, Web Forms, Data Presentation Controls 等等. 每個子論壇包含多個主題, 每個主題又由多個貼子組成. 在asp.net論壇主頁上列出了這些子論壇,單擊其中一個論壇會轉到ShowForum.aspx頁面, 該頁面列出了這個子論壇所包含的主題. 同樣,單擊一個主題會轉向ShowPost.aspx, 該頁面顯示所單擊主題的貼子.

  在這篇教程中,我們將通過使用GridView列出供應商來實現該模式. GridView中的每行(一行便是一個供應商)包含一個”查看產品”的鏈接. 該鏈接在單擊時會轉到另外一個頁面, 這個頁面顯示選中供應商的所有產品.

Step 1: 在Filtering文件夾下添加 SupplierListMaster.aspx 和ProductsForSupplierDetails.aspx

  在第三篇教程中定義頁面結構時我們在BasicReporting, Filtering, 和 CustomFormatting文件夾中增加了好幾個起始頁面.我們還沒有為這篇教程中添加起始頁,在Filtering文件夾中增加兩個頁面: SupplierListMaster.aspx 和 ProductsForSupplierDetails.aspx. SupplierListMaster.aspx將會列出主記錄(供應商) ProductsForSupplierDetails.aspx將會顯示選中供應商的產品.

  在創建這兩個頁面時注意要讓它們關聯Site.master母版頁.

圖1: 在Filtering文件夾下添加 SupplierListMaster.aspx 和ProductsForSupplierDetails.aspx

  此外, 添加了兩個文件到該項目后, 要確保相應地更新站點地圖文件Web.sitemap. 對于該篇教程只要簡單地使用下面的XML內容做為元素的子節點

提示:使用K. Scott Allen的免費的Visual Studio Site Map Macro可以幫助你在新增ASP.NET頁時自動地更新站點地圖.

Step 2: SupplierListMaster.aspx中顯示供應商列表

  添加SupplierListMaster.aspx 和 ProductsForSupplierDetails.aspx后,接下來就是要在SupplierListMaster.aspx頁面上創建一個顯示供應商的GridView. 添加一個GridView到頁面上并綁定到一個新的ObjectDataSource, 這個ObjectDataSource應該使用SuppliersBLL類的GetSuppliers()方法返回所有供應商.

圖2: 選擇 SuppliersBLL 類

圖3: 配置ObjectDataSource 使用GetSuppliers() 方法

  我們需要在每個GridView行中包含一個”查看產品”鏈接,單擊時該鏈接會轉到ProductsForSupplierDetails.aspx頁面, 并在查詢字符串(querystring)傳遞選定行的SupplierID值.比如如果用戶單擊了供應商Tokyo Traders(SupplierID值為4)的”查看產品”鏈接,將會轉到ProductsForSupplierDetails.aspx?SupplierID=4.

  要實現該功能, 給GridView添加一個HyperLinkField列, 它會為每個GridView行增加一個鏈接. 首先在GridView智能標記上單擊編輯列鏈接. 然后在左上角的列表中選擇HyperLinkField并單擊新增把HyperLinkField添加到GridView的字段列表中.

圖4: 添加 HyperLinkField 到GridView

  HyperLinkField可以被配置為在每一個GridView行中使用相同的文本或URL值,或是讓這些值基于綁定到特定行的數據值. 要指定一個所有行都一樣的靜態值使用HyperLinkField的Text或NavigateUrl屬性. 因為我們想讓每一行的鏈接文本一致,設置HyperLinkField的Text屬性為”查看產品”.

圖5: 設置HyperLinkField的Text屬性為”查看產品”

  要讓text 或URL基于綁定到GridView行的底層數據, 可能通過DataTextField 或 DataNavigateUrlFields指定Text或URL要從中獲取數據的數據字段. DataTextField只能設置為一個單一的數據字段; DataNavigateUrlFields可以設置為一個以逗號分隔的數據字段列表. 我們需要讓TEXT或URL基于當前行的數據字段值和一些標記. 比如在這篇教程中,我們希望 HyperLinkField的鏈接URL是ProductsForSupplierDetails.aspx?SupplierID=supplierID. 其中supplierID是GridView的每個行的supplierID值. 注意我們需要靜態值和數據驅動值. ProductsForSupplierDetails.aspx?SupplierID=這部分是靜態值.而supplierID部分便是數據驅動的, 它的值是每一行的SupplierID值.

  要指定靜態值和數據驅動值的混合物, 使用DataTextFormatString和DataNavigateUrlFormatString屬性. 在這些屬性中按需要輸入靜態文本,要顯示DataTextField或DataNavigateUrlFields屬性中特定的字段時使用{0}標記. 如果DataNavigateUrlFields中有多個字段,在需要第一個字段時使用{0}, 第二個字段使用{1},以此類推.

  對于我們這篇教程來說, 我們需要設置DataNavigateUrlFields為SupplierID, 因為我們需要使用該數據字段自定義每行的鏈接.

圖6: 配置HyperLinkField 使用合適的基于SupplierID 的鏈接地址.

  添加了HyperLinkField后, 可以自定義及重新排列GridView的字段. 下面是我做了修改后的標記 (markup):

  在瀏覽器中訪問一下SupplierListMaster.aspx. 如圖7所示, 頁面列出了所有的供應商,每個供應商包含”查看產品”鏈接. 單擊”查看產品”鏈接會轉到ProductsForSupplierDetails.aspx, 并在查詢字符串中傳遞供應商的SupplierID值.

圖 7: 每個供應商都包含”查看產品”鏈接.

Step 3: 在ProductsForSupplierDetails.aspx上列出供應商的產品

  SupplierListMaster.aspx頁面使用戶轉到ProductsForSupplierDetails.aspx, 并在查詢字符串中傳遞選擇的供應商的SupplierID值. 本篇教程的最后一步是在ProductsForSupplierDetails.aspx 頁面上的GridView中顯示產品. 要實現該功能首先添加GridView到ProductsForSupplierDetails.aspx上,并使用一個新的命名為ProductsBySupplierDataSource的ObjectDataSource控件, 該控件調用ProductsBLL 類的GetProductsBySupplierID(supplierID)方法.

圖8: 添加一個新的命名為 ProductsBySupplierDataSource 的ObjectDataSource

圖9: 選擇ProductsBLL 類

圖10: 讓ObjectDataSource 調用 GetProductsBySupplierID(supplierID) 方法

  配置數據源向導的最后一步是要我們提供GetProductsBySupplierID(supplierID) 方法中 supplierID 參數的來源. 要使用查詢字符串中的值. 設置參數源為QueryString 并在QueryStringField文本框中輸入查詢字符串值的名稱(SupplierID).

圖11: 使用查詢字符串中的SupplierID值做為supplierID 參數的值

這樣就可以了! 圖12顯示了當我們在SupplierListMaster.aspx頁面中單擊Tokyo Traders供應商的”查看產品”鏈接時所看到的樣子.

圖12: 顯示Tokyo Traders 供應商的產品

在ProductsForSupplierDetails.aspx中顯示供應商信息

如圖12所示, ProductsForSupplierDetails.aspx只列出了通過在查詢字符串中指定的SupplierID的供應商的產品. 然而, 有些人會直接到達該頁, 這樣他們就不清楚圖12中正中顯示Tokyo Trader的產品了. 要修正這個問題, 我們可以在頁面上顯示供應商的信息.

在GridView上方添加一個FormView. 創建一個ObjectDataSource控件并命名為SuppliersDataSource. 該控件調用SuppliersBLL類的GetSupplierBySupplierID(supplierID)方法.

圖13: 選擇 SuppliersBLL 類

圖14: 讓ObjectDataSource 調用 GetSupplierBySupplierID(supplierID) 方法

使用查詢字符串中SupplierID的值為ProductsBySupplierDataSource的supplierID參數賦值.

圖15: 讓supplierID 參數使用查詢字符串中的SupplierID 的值

  在設計視圖中綁定FormView到ObjectDataSource時, Visual Studio 將會自動的創建FormView的ItemTemplate, InsertItemTemplate 和 EditItemTemplate 三個模板, 這些模板使用Label和TextBox Web控件來呈現從ObjectDataSource返回的數據. 因為我們只需要顯示供應商信息, 可以移除InsertItemTemplate 和 EditItemTemplat模板. 然后,編輯ItemTemplate模板,使它在標簽中顯示供應商的公司名稱, 在公司名稱下面顯示地址,城市,國家和電話號碼. 另外你也可以手工設置 FormView的 DataSourceID和創建ItemTemplate的標記. 就像我們在后面”使用ObjectDataSource顯示數據”一篇中的所作的那樣.

修改后,Formview的標記看起來應該是這樣:

asp:FormView ID="FormView1" runat="server" DataKeyNames="SupplierID" DataSourceID="suppliersDataSource" EnableViewState="False">
ItemTemplate>
h3>%# Eval("CompanyName") %>/h3>
p>
asp:Label ID="AddressLabel" runat="server" Text='%# Bind("Address") %>'>/asp:Label>br />
asp:Label ID="CityLabel" runat="server" Text='%# Bind("City") %>'>/asp:Label>,
asp:Label ID="CountryLabel" runat="server" Text='%# Bind("Country") %>'>/asp:Label>br />
Phone:
asp:Label ID="PhoneLabel" runat="server" Text='%# Bind("Phone") %>'>/asp:Label>
/p>
/ItemTemplate>
/asp:FormView>

圖16顯示了包含了供應商信息后的ProductsForSupplierDetails.aspx頁面截屏.

圖16: 包含供應商概括信息的產品列表

為ProductsForSupplierDetails.aspx 用戶界面應用些小技巧.

  要改善該報表的用戶體驗, 應該給ProductsForSupplierDetails.aspx頁面添加點東西. 現在用戶從ProductsForSupplierDetails.aspx回到供應商列表頁面的唯一方法是單擊瀏覽器的后退按鈕. 讓我們給ProductsForSupplierDetails.aspx增加一個HyperLink控件, 該控件指向SupplierListMaster.aspx, 這樣就給用戶提供了另外一個回到供應商列表的方法.

圖17: 增加一個HyperLink 控件讓用戶可以回到SupplierListMaster.aspx

  如果用戶單擊了某個供應商的”查看產品”鏈接,而該供應商又沒有任何產品, ProductsForSupplierDetails.aspx 上的ProductsBySupplierDataSource ObjectDataSource將不會返回任何結果. 綁定到ObjectDataSource的GridView不會呈現任何標記, 在用戶的瀏覽器中顯示為空白. 要明確的告訴用戶沒有與選定供應商關聯的產品,我們可以設置GridView的EmptyDataText屬性為當出現這種情況是我們想要顯示的消息. 我們把它設置為:” 沒有這個供應商的產品…”;

  默認情況下, Northwinds數據庫中所有的供應商提供了至少一個產品. 但是, 在本篇教程中我已經手工修改了產品表, 這樣供應商Escargots Nouveaux不再關聯任何產品. 圖18顯示了修改后的供應商Escargots Nouveaux的詳細頁面.

圖18: 提示用戶該供應商沒有提供任何產品.

總結

  主/從報表可以在一個頁面上同時顯示主記錄和明細記錄,在很多的網站上, 主/從記錄也被分開顯示在兩個頁面上. 在這篇教程中我們看到了如何實現這種報表, 該報表在主頁面上用GridView顯示供應商列表, 在明細頁顯示關聯的產品列表. 主頁面上的每個供應商都包含一個指定明細頁面的鏈接, 并傳遞 SupplierID值. 這樣的特定行的鏈接使用GridView的HyperLinkField可以很容易實現.

  明細頁中獲取指定供應商的產品是通過調用ProductsBLL類的GetProductsBySupplierID(supplierID)方法實現的. supplierID參數值由查詢字符串中指定. 我們同樣也看到了如何在明細頁中使用FormView顯示供應商詳細信息

  下一篇教程是主/從報表的最后一部分. 我們將會看到如何在GridView中列出產品, GridView中的每行有一個選擇按鈕. 單擊選擇按鈕會在同一頁的DetailsView中顯示這個產品的詳細信息.

祝編程愉快!

作者簡介

Scott Mitchell,著有六本ASP/ASP.NET方面的書,是4GuysFromRolla.com的創始人,自1998年以來一直應用微軟Web技術。Scott是個獨立的技術咨詢顧問,培訓師,作家,最近完成了將由Sams出版社出版的新作,24小時內精通ASP.NET 2.0。他的聯系電郵為mitchell@4guysfromrolla.com,也可以通過他的博客http://scottonwriting.net/與他聯系。

您可能感興趣的文章:
  • 在ASP.NET 2.0中操作數據之一:創建一個數據訪問層
  • 在ASP.NET 2.0中操作數據之二:創建一個業務邏輯層
  • 在ASP.NET 2.0中操作數據之三:創建母版頁和站點導航
  • 在ASP.NET 2.0中操作數據之四:使用ObjectDataSource展現數據
  • 在ASP.NET 2.0中操作數據之五:聲明參數
  • 在ASP.NET 2.0中操作數據之六:編程設置ObjectDataSource的參數值
  • ASP.NET 2.0中的數據操作之七:使用DropDownList過濾的主/從報表
  • ASP.NET 2.0中的數據操作之八:使用兩個DropDownList過濾的主/從報表
  • 在ASP.NET 2.0中操作數據之十:使用 GridView和DetailView實現的主/從報表
  • [翻譯]Scott Mitchell 的ASP.NET 2.0數據教程

標簽:汕頭 麗江 宜春 本溪 婁底 吉林 重慶 河南

巨人網絡通訊聲明:本文標題《ASP.NET 2.0中的數據操作之九:跨頁面的主/從報表》,本文關鍵詞  ASP.NET,2.0,中的,數據,操作,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET 2.0中的數據操作之九:跨頁面的主/從報表》相關的同類信息!
  • 本頁收集關于ASP.NET 2.0中的數據操作之九:跨頁面的主/從報表的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    精品一区二区三区在线播放视频| 久久众筹精品私拍模特| 天堂成人免费av电影一区| 久久久噜噜噜久噜久久综合| 欧美日韩国产综合视频在线观看| 成人av手机在线观看| 国产伦精品一区二区三区免费| 亚洲国产一区二区三区| 国产精品白丝在线| 欧美午夜宅男影院| 97精品久久久午夜一区二区三区| 国产成人免费9x9x人网站视频| 日日欢夜夜爽一区| 日韩av电影免费观看高清完整版| 亚洲男人天堂av网| 一区二区三区在线看| 综合激情成人伊人| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 一区二区在线观看免费| 中文字幕免费观看一区| 国产欧美日韩三级| 国产精品成人午夜| 国产目拍亚洲精品99久久精品| 久久精品亚洲精品国产欧美kt∨| 精品国产免费人成在线观看| 久久久久国产一区二区三区四区| 国产天堂亚洲国产碰碰| 国产亚洲短视频| 久久久久久亚洲综合影院红桃| 日韩一区二区三区四区五区六区| 不卡的电视剧免费网站有什么| 成人一区二区三区在线观看| 国产米奇在线777精品观看| 国产一区二区三区四| 狠狠色狠狠色合久久伊人| 国产麻豆成人精品| voyeur盗摄精品| 粉嫩绯色av一区二区在线观看| 成人精品视频.| 91国产免费看| 精品国产伦一区二区三区观看方式 | 91国产成人在线| 中文字幕亚洲一区二区av在线| 中文字幕在线观看不卡视频| 一区二区三区国产豹纹内裤在线| 婷婷久久综合九色综合绿巨人| 日韩av一区二| 麻豆成人免费电影| 东方欧美亚洲色图在线| jlzzjlzz亚洲女人18| 欧美美女网站色| 久久综合视频网| 麻豆专区一区二区三区四区五区| 91美女在线观看| 亚洲国产精品黑人久久久| 男女激情视频一区| 欧美日韩国产小视频在线观看| 中文字幕一区三区| 成人丝袜18视频在线观看| 日韩你懂的在线观看| 亚洲一二三四在线| 色天使色偷偷av一区二区| 日本一区二区三区久久久久久久久不| 男人的天堂久久精品| 69久久99精品久久久久婷婷| 一区二区三区欧美亚洲| 91色乱码一区二区三区| 中文字幕一区不卡| 91麻豆精东视频| 亚洲精品videosex极品| 久久久久99精品国产片| 国产三级精品视频| 国产综合色视频| 久久综合色播五月| 久草在线在线精品观看| 日韩午夜在线影院| 久久国产婷婷国产香蕉| 精品第一国产综合精品aⅴ| 麻豆高清免费国产一区| 91精品国产一区二区三区 | 9l国产精品久久久久麻豆| 日本一区二区不卡视频| 不卡av在线网| 亚洲精品第1页| 欧美日韩不卡一区二区| 青青草97国产精品免费观看无弹窗版| 欧美日韩精品一区二区在线播放| 无码av中文一区二区三区桃花岛| 国产毛片精品国产一区二区三区| 欧美大片日本大片免费观看| 久久精品国产第一区二区三区| 久久综合狠狠综合| heyzo一本久久综合| 一区二区三区免费在线观看| 欧美自拍丝袜亚洲| 秋霞成人午夜伦在线观看| 精品国产自在久精品国产| 成人伦理片在线| 成人免费视频在线观看| 在线观看欧美日本| 久久国产免费看| 亚洲国产成人午夜在线一区| 在线亚洲高清视频| 久久99精品久久久| 亚洲日本va午夜在线影院| 欧美午夜精品一区二区蜜桃| 国产真实乱对白精彩久久| 国产精品乱人伦一区二区| 欧美在线色视频| 国产一二精品视频| 亚洲午夜国产一区99re久久| 久久久久综合网| 国产精品综合二区| 夜夜嗨av一区二区三区四季av| 91精品国产综合久久精品麻豆| 国内精品免费**视频| 亚洲精品第一国产综合野| 欧美哺乳videos| 欧美写真视频网站| 成人福利视频在线看| 老司机精品视频一区二区三区| 亚洲免费观看视频| 精品国产一区二区三区四区四| 91网站视频在线观看| 激情丁香综合五月| 日韩精品一二三| 亚洲精品伦理在线| 国产精品电影一区二区| 精品国产91乱码一区二区三区| 欧美日韩三级在线| 91免费视频观看| 成人国产在线观看| 99re成人精品视频| 国产综合色产在线精品| 视频一区二区三区中文字幕| 亚洲欧美偷拍三级| 日本一区二区电影| 久久综合精品国产一区二区三区| 欧美日韩激情在线| 在线观看亚洲成人| 91蝌蚪porny九色| 成人av午夜影院| 国产剧情在线观看一区二区| 日韩成人dvd| 日韩av在线免费观看不卡| 亚洲高清一区二区三区| 亚洲国产综合91精品麻豆| 一级中文字幕一区二区| 亚洲免费在线视频| 一区二区三区91| 亚洲一区av在线| 婷婷综合五月天| 日韩福利视频导航| 久久成人av少妇免费| 黄色日韩网站视频| 国产二区国产一区在线观看| 国产成人精品一区二区三区四区| 国产精品一区二区三区四区| 国产精品一二三四五| 国产成人午夜高潮毛片| 成人免费视频一区| 日本高清成人免费播放| 欧美日韩国产色站一区二区三区| 欧美性色黄大片| 欧美一级一区二区| 久久久www免费人成精品| 国产精品久久看| 一区二区三区av电影| 日韩在线一区二区| 国产综合色精品一区二区三区| 国产99一区视频免费| 一本到不卡精品视频在线观看| 欧美日韩成人综合天天影院| 精品国产伦一区二区三区免费 | 成人免费视频视频| 色婷婷av一区二区三区之一色屋| 欧美午夜精品一区二区三区| 日韩久久久精品| 国产日韩欧美高清| 亚洲影视在线观看| 精品一区二区三区在线观看国产| 国产河南妇女毛片精品久久久 | 日韩精品一区二区三区老鸭窝 | 蜜臀av亚洲一区中文字幕| 国产成人精品亚洲午夜麻豆| 91国在线观看| 2020国产精品自拍| 亚洲成人精品一区二区| 国产黄色精品网站| 在线播放91灌醉迷j高跟美女| 国产欧美日韩另类视频免费观看| 自拍偷自拍亚洲精品播放| 日韩主播视频在线| 成人av免费在线播放| 欧美电影免费提供在线观看| 亚洲青青青在线视频| 国产一区在线观看视频| 欧洲人成人精品| 国产精品久久久久久亚洲伦| 日本vs亚洲vs韩国一区三区二区 |