• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        運(yùn)用 ASP+ 下文綁定控件(上)

        運(yùn)用 ASP+ 下文綁定控件(上)

        更新時(shí)間:2022-05-05 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        簡(jiǎn)介

          Repeater、DataList和DataGrid控件構(gòu)成ASP+頁面框架中System.Web.
        UI.WebControls名稱空間內(nèi)的相關(guān)Web控件集。這些控件使HTML顯示所綁
        定列表或數(shù)據(jù)源的內(nèi)容。因此,將它們統(tǒng)稱為“列表綁定控件”。

        與框架中的其它 Web

          控件類似,這些控件提供一致的編程模型并封裝一個(gè)獨(dú)立于瀏覽器的
        表示邏輯。這些特性使開發(fā)人員能夠針對(duì)對(duì)象模型編程而不用必須掌握與
        HTML 相關(guān)的那些不一致的和復(fù)雜的技術(shù)知識(shí)。

          這三種控件可以按多種布局(包括列表、分欄/報(bào)紙欄目和流布局
        (HTML流))來表示與其相關(guān)的數(shù)據(jù)源內(nèi)容。此外,它們還允許您創(chuàng)建完
        全不同的或完全定制的布局。除了封裝有表示邏輯外,還提供了用來處理
        已發(fā)送數(shù)據(jù)、執(zhí)行狀態(tài)管理和引發(fā)事件的功能。最后,它們還對(duì)諸如選擇、
        編輯、分頁和排序之類的標(biāo)準(zhǔn)操作提供不同級(jí)別的支持。這些控件可以簡(jiǎn)
        化幾種常見的 Web 應(yīng)用程序方案,包括報(bào)表、購物車、產(chǎn)品列表、查詢
        結(jié)果和導(dǎo)航菜單。

          下面幾節(jié)將進(jìn)一步說明這些控件和如何在您的 Web 應(yīng)用程序中使用
        它們,以及如何選用控件。

        列表綁定控件是如何工作的?

          本節(jié)是本文其余部分的背景材料。概述了這些列表綁定控件的工作方
        式、它們的共同特性以及某些相關(guān)概念。

        DataSource 屬性
          每個(gè)控件都有一個(gè)DataSource屬性,其類型為System.Collections.
        ICollection。用最簡(jiǎn)單的話來說,數(shù)據(jù)源是同類對(duì)象的一個(gè)列表或集合。

          此框架中有幾個(gè)對(duì)象提供了 ICollection 的實(shí)現(xiàn)。這個(gè)集合包括
        System.Data.DataView(它通常用來訪問關(guān)系數(shù)據(jù)庫和 XML 數(shù)據(jù))、一
        般ICollection實(shí)現(xiàn)(如ArrayList和Hashtable)以及數(shù)組。

          與傳統(tǒng)的數(shù)據(jù)綁定控件(它們通常需要ADO記錄集)不同,除了實(shí)現(xiàn)
        ICollection接口之外,這些列表綁定控件未對(duì)其數(shù)據(jù)源強(qiáng)加任何其它要
        求。根據(jù)設(shè)計(jì),通過大量增加可作為有效DataSource屬性值的類型和數(shù)據(jù)
        結(jié)構(gòu),它們能夠?yàn)槟膽?yīng)用程序代碼實(shí)現(xiàn)最大程度的簡(jiǎn)單和靈活性。

        項(xiàng)目集合

          每個(gè)列表綁定控件都包含一個(gè)項(xiàng)目集合?丶ㄟ^列舉這些對(duì)象當(dāng)前
        的數(shù)據(jù)源來置入其項(xiàng)目集合。在列舉中為每個(gè)對(duì)象創(chuàng)建單個(gè)項(xiàng)目并用于表
        示該對(duì)象。這些項(xiàng)目同時(shí)成為列表綁定控件中包含的控件層次結(jié)構(gòu)的一部
        分。

        下表列出了與數(shù)據(jù)源的數(shù)據(jù)相關(guān)聯(lián)的項(xiàng)目類型。

        項(xiàng)目 創(chuàng)建的默認(rèn)項(xiàng)目類型
        AlternatingItem 為項(xiàng)目集合中具有奇數(shù)下標(biāo)的項(xiàng)目創(chuàng)建
        SelectedItem 為選定的項(xiàng)目創(chuàng)建(不論該項(xiàng)目是否為備選項(xiàng)目)
        EditItem 為處于編輯模式下的項(xiàng)目創(chuàng)建(不管它是否被選中或是否為備選項(xiàng)目)


          控件同時(shí)創(chuàng)建將在表示中用到的下列項(xiàng)目。但是,它們并不與數(shù)據(jù)源
        的數(shù)據(jù)相關(guān)聯(lián)。

        標(biāo)頭 用來表示標(biāo)頭信息
        注腳 用來表示注腳信息
        分隔符 用來表示圖 1 中所示的每個(gè)項(xiàng)目之間的內(nèi)容,并且僅適用于 Repeater 和 DataList
        分頁符 用來表示與 DataGrid 控件相關(guān)聯(lián)的分頁 UI

              

        項(xiàng)目的數(shù)據(jù)綁定和創(chuàng)建

          列表綁定控件遵循在整個(gè) ASP+ 框架中實(shí)現(xiàn)的顯式數(shù)據(jù)綁定模型。這
        意味著控件僅當(dāng)其 DataBind 方法被調(diào)用時(shí)才需要并列舉其數(shù)據(jù)源。

        當(dāng)調(diào)用 DataBind

          方法時(shí),列表控件將列舉其數(shù)據(jù)源、創(chuàng)建項(xiàng)目并通過從其數(shù)據(jù)源中提
        取值來對(duì)其進(jìn)行初始化。如果啟用了狀態(tài)管理,則控件還將保存所需的全
        部信息,以便在頁面的回傳處理期間重新創(chuàng)建其項(xiàng)目而無須重新設(shè)置數(shù)據(jù)
        源。

          顯式數(shù)據(jù)綁定模型使您的應(yīng)用程序代碼可以精確地確定在處理序列中
        何時(shí)及何處需要數(shù)據(jù)源。這種功能使對(duì)數(shù)據(jù)庫服務(wù)器的訪問更少且更高效,
        而這些訪問通常是 Web 應(yīng)用程序最耗費(fèi)資源的操作。

          一般規(guī)則是每當(dāng)您需要重新創(chuàng)建項(xiàng)目時(shí)都必須調(diào)用DataBind。在大多
        數(shù)情況下,您將在您的頁面首次被請(qǐng)求創(chuàng)建初始項(xiàng)目集合時(shí)調(diào)用DataBind。
        在該頁面的后續(xù)執(zhí)行過程中,您將需要在引起項(xiàng)目集合被更改的各種事件
        處理程序中調(diào)用此方法。當(dāng)用于創(chuàng)建初始數(shù)據(jù)源的查詢被修改時(shí),就可能
        發(fā)生這種情況。當(dāng)項(xiàng)目的狀態(tài)改變(如從只讀模式變?yōu)榫庉嬆J剑⿻r(shí)也可
        能發(fā)生這種情況。

        樣式

          通過在對(duì)象模型上使用樣式屬性,您可以定義全部DataList和DataGrid
        控件及其所包含項(xiàng)目的格式和外觀。這些屬性允許定制字體、顏色、邊框
        和其它外觀因素。控件本身的樣式屬性(如前景色、背景色、字體和邊框
        樣式)將影響整個(gè)控件的表示。

          此外,每個(gè)控件都包含與其所創(chuàng)建的項(xiàng)目類型相匹配的大量樣式屬性,
        如as ItemStyle、AlternatingItemStyle和headerStyle。DataGrid提供
        第三級(jí)的樣式屬性,這些屬性將影響特定列的所有單元格?丶邪
        每一列都可以擁有其自己的 headerStyle、FooterStyle 和 ItemStyle。

        模板

          樣式控制格式顯示,而模板則定義每個(gè)項(xiàng)目的內(nèi)容和表示。您可以將
        模板看作HTML代碼片斷,它定義了用來表示項(xiàng)目的控件層次結(jié)構(gòu)。

          Repeater 和 DataList 控件由您指定的模板來驅(qū)動(dòng),提供各種可設(shè)
        置的模板屬性,如ItemTemplate、AlternatingItemTemplate和header
        Template。與樣式類似,每個(gè)模板都對(duì)應(yīng)于一個(gè)特定類型的項(xiàng)目。

          DataGrid 控件未模板化。但是,控件的 Column 集合中的 Template
        Columns使DataGrid中模板的使用成為可能。TemplateColumn中的每個(gè)單
        元格都可以包含一個(gè)模板,這與 Repeater 或 DataList 控件中的項(xiàng)目極
        為類似。這也使 DataGrid 中的定制表示成為可能。

        模板中的數(shù)據(jù)綁定

          模板定義項(xiàng)目中包含的控件層次結(jié)構(gòu)。通過使用數(shù)據(jù)綁定表達(dá)式,此
        層次結(jié)構(gòu)中的控件屬性可綁定到與此項(xiàng)目相關(guān)聯(lián)的數(shù)據(jù)屬性上。

          作為模板的邏輯父級(jí)的項(xiàng)目在數(shù)據(jù)綁定表達(dá)式中被稱為“容器”。每
        個(gè)容器都有一個(gè)稱為DataItem的屬性,該屬性引用其相關(guān)聯(lián)的數(shù)據(jù)。結(jié)果
        是,模板中的大多數(shù)典型數(shù)據(jù)綁定表達(dá)式都將控件屬性綁定到 Container.
        DataItem的某個(gè)屬性上。將在以下幾節(jié)介紹的示例中進(jìn)一步說明這種綁定。

        Repeater 控件

          如前面所述,Repeater控件是完全由模板驅(qū)動(dòng)的,允許創(chuàng)建完全可定
        制的表示和布局。下圖說明了這一功能。



        摘自 Repeater1.aspx:

        〈%@ Page language="C#" src="Repeater1.cs" inherits="Samples.
        Repeater1Page"%〉
        ...

        〈asp:Repeater runat=server id="linksListRepeater"
         DataSource='〈%# SiteLinks %〉'〉
         〈template name="headerTemplate"〉
          〈ul type="1"〉
         〈/template〉
         〈template name="ItemTemplate"〉
          〈li〉
           〈asp:HyperLink runat=server
            Text='〈%# DataBinder.Eval(Container.DataItem, "SiteName")
            %〉'
            NavigateUrl='〈%# DataBinder.Eval(Container.DataItem,
            "SiteURL") %〉'〉
           〈/asp:HyperLink〉
          〈/li〉
         〈/template〉
         〈template name="FooterTemplate"〉
          〈/ul〉
         〈/template〉
        〈/asp:Repeater〉

          此.aspx文件顯示了一個(gè)用于生成帶項(xiàng)目符號(hào)列表的 repeater控件的
        聲明。

          此示例說明了用數(shù)據(jù)綁定語法(〈%#...%〉)設(shè)置數(shù)據(jù)源的聲明方法。
        當(dāng)您調(diào)用 DataBind 方法時(shí),數(shù)據(jù)綁定中的表達(dá)式就會(huì)被執(zhí)行。在這種情
        況下,repeater 的 DataSource 屬性被綁定到頁面的 SiteLinks 屬性上,
        后者包含要顯示的 URL 引用。

          Repeater是唯一允許在其模板中存在 HTML片段的控件,將 Repeater
        控件和HTML片段合在一起會(huì)產(chǎn)生良好形式的HTML。在本示例中,帶項(xiàng)目符
        號(hào)的列表分為三個(gè)部分:

          由 headerTemplate 表示的列表開始標(biāo)記 (〈ul type="1"〉)。

          由 FooterTemplate 表示的列表結(jié)束標(biāo)記 (〈/ul〉)。

          列表的主體由通過為 SiteLinks 集合中出現(xiàn)的每個(gè)對(duì)象重復(fù) Item
        Template 而生成的列表項(xiàng) (〈li〉) 置入。

          您也可以使用這些模板在標(biāo)頭中指定表的開始標(biāo)記(〈TABLE〉),在注
        腳中指定表的結(jié)束標(biāo)記(〈/TABLE〉),在每個(gè)項(xiàng)目中指定單個(gè)表行(〈TR〉)。此替換選項(xiàng)將導(dǎo)致列表表示。

          您必須指定 ItemTemplate。它是唯一必需的模板。當(dāng)未指定其它模
        板時(shí),控件會(huì)自動(dòng)將此 ItemTemplate 用于其它模板。

          在以下示例中,ItemTemplate 包含一個(gè) HyperLink Web 控件。此控
        件的Text和NavigateUrl屬性被綁定到與每個(gè)重復(fù)項(xiàng)目相關(guān)聯(lián)的數(shù)據(jù)屬性
        上。這又是使用數(shù)據(jù)綁定表達(dá)式(在創(chuàng)建項(xiàng)目后立即對(duì)該表達(dá)式求值)完
        成的。

        Repeater1.cs:

        namespace Samples {
         ...

         public class Repeater1Page : Page {
           protected Repeater linksListRepeater;

           public ICollection SiteLinks {
             get {
               ArrayList sites = new ArrayList();

               sites.Add(new SiteInfo("Microsoft Home",
                           "http://www.microsoft.com"));
               sites.Add(new SiteInfo("MSDN Home",
                           "http://msdn.microsoft.com"));
               sites.Add(new SiteInfo("MSN Homepage",
                           "http://www.msn.com"));
               sites.Add(new SiteInfo("Hotmail",
                           "http://www.hotmail.com"));
               return sites;
             }
           }

           protected override void OnLoad(EventArgs e) {
             base.OnLoad(e);

             if (!IsPostBack) {
               // 首次請(qǐng)求該頁時(shí)即對(duì)其進(jìn)行數(shù)據(jù)綁定 (DataBind)。
               // 這將在此頁的控件層次結(jié)構(gòu)中遞歸調(diào)用每個(gè)控件。
               DataBind();
             }
           }
         }

         public sealed class SiteInfo {
           private string siteName;
           private string siteURL;

           public SiteInfo(string siteName, string siteURL) {
             this.siteName = siteName;
             this.siteURL = siteURL;
           }

           public string SiteName {
             get { return siteName; }
           }
           public string SiteURL {
             get { return siteURL; }
           }
         }
        }

          此 .cs 文件包含隨前一個(gè)列表中的 aspx 頁一起出現(xiàn)的代碼。

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: aa级一级天堂片免费观看| 8090在线观看免费观看| 免费人成视频在线观看视频| 亚洲国产激情在线一区| 亚洲三级高清免费| 亚洲国产综合精品中文第一| 韩国免费一级成人毛片| 国产精品亚洲四区在线观看| 色婷婷7777免费视频在线观看| 亚洲第一成人在线| 欧洲乱码伦视频免费| 亚洲熟女综合一区二区三区| 永久在线毛片免费观看| 猫咪www免费人成网站| 不卡一卡二卡三亚洲| 国产激情免费视频在线观看 | 无码人妻久久一区二区三区免费| 亚洲人成伊人成综合网久久久| a级片在线免费看| 亚洲欧洲国产精品久久| 亚洲娇小性xxxx| 成人a免费α片在线视频网站| 亚洲avav天堂av在线网毛片| 亚洲精品无码专区2| 精品国产麻豆免费人成网站| 亚洲一级毛片免费看| 黄色网站软件app在线观看免费| 亚洲阿v天堂在线| 大学生一级毛片免费看| 久久水蜜桃亚洲AV无码精品| 亚洲人成在线播放网站| 成人超污免费网站在线看| 亚洲美女视频网站| 日本免费中文字幕在线看| 皇色在线免费视频| 亚洲va成无码人在线观看| 亚洲精品国产高清不卡在线| 91香蕉在线观看免费高清| 老司机福利在线免费观看| 亚洲综合婷婷久久| 国产大片91精品免费观看不卡|