亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        .NET中變量綁定方法面面觀

        2012-04-13 17:22:14強(qiáng)
        關(guān)鍵詞:字符串前臺(tái)服務(wù)器端

        葛 世 強(qiáng)

        (蘭州職業(yè)技術(shù)學(xué)院 信息工程系,蘭州 730070)

        在.NET編程中經(jīng)常會(huì)碰到在前臺(tái)代碼中要使用或綁定后臺(tái)代碼中變量值的問題。一般有<%= str%>和<%# str %>兩種方式。前臺(tái)即通常的.aspx文件,后臺(tái)指的是與aspx相關(guān)聯(lián)的CodeBehind,文件后綴名為.aspx.cs。一般來說,在前臺(tái)代碼的三種位置可能會(huì)綁定后臺(tái)變量:

        (1)服務(wù)器端控件屬性或HTML標(biāo)簽屬性;

        (2)JavaScript代碼中;

        (3)Html顯示內(nèi)容的位置。

        1 服務(wù)器端控件屬性或HTML標(biāo)簽屬性中綁定后臺(tái)變量

        服務(wù)器端控件屬性或HTML標(biāo)簽屬性中綁定后臺(tái)變量需要注意:

        (1)要綁定的控件或標(biāo)簽一般的屬性要求是字符串型或數(shù)值型;

        (2)并不是所有的屬性都可以綁定變量,有些屬性例如runat屬性必須是“server”常量,即使綁定的字符串是server,也會(huì)導(dǎo)致分析器分析時(shí)出錯(cuò);

        (3)某些屬性要求屬性值有約束(類型約束,比如服務(wù)器端控件要求TabIndex屬性是short類型,或者字符串內(nèi)容有約束),也應(yīng)該在綁定時(shí)滿足,否則依然可能編譯時(shí)報(bào)錯(cuò);

        (4)雖然屬性本身有約束,但即使綁定的變量不滿足約束,也可以編譯通過,比如input的checked屬性,它只有checked字符串是合法的,但如果通過綁定獲取到的字符串不是checked,那么這些屬性將有自己內(nèi)部處理機(jī)制,來保證可以正常使用;

        (5)即使對(duì)于同一類屬性,服務(wù)器端和HTML的屬性的處理機(jī)制也不同,同樣是TabIndex(tabIndex),前者如果不滿足,則分析器錯(cuò)誤,后者則忽略這一問題。

        2 JavaScript代碼中綁定后臺(tái)變量

        JavaScript代碼中綁定后臺(tái)變量只要注意綁定的后臺(tái)變量和JavaScript中數(shù)據(jù)類型兼容即可。

        3 Html顯示內(nèi)容綁定后臺(tái)變量

        如果綁定出現(xiàn)的位置不在服務(wù)器端控件內(nèi)部,則沒有約束條件,只要是常量字符串可以出現(xiàn)的位置,均可以綁定。但是對(duì)于置于服務(wù)器端控件內(nèi)部,則有約束條件。此類控件可以歸納為四類服務(wù)器端控件,如果綁定的代碼出現(xiàn)在這些控件的開始和結(jié)束標(biāo)簽之間則有不同的顯示結(jié)果。

        3.1 約束型控件

        這類控件要求它的開始標(biāo)簽和結(jié)束標(biāo)簽中只能包含指定的子控件,因此如果在這里出現(xiàn)代碼塊,將編譯錯(cuò)誤。例如:在它之間,要求必須嵌套。

        3.2 非嵌套類控件

        該類控件不允許在內(nèi)部嵌套其他控件或標(biāo)簽,只能是常量字符串,它會(huì)將開始標(biāo)簽和結(jié)束標(biāo)簽中常量字符串內(nèi)容作為它的屬性。例如TextBox就會(huì)將標(biāo)簽間內(nèi)容作為它的Text屬性值。

        3.3 嵌套類控件

        這類控件可以嵌套其他任意控件,也可以包含字符串,因此可以正常顯示綁定代碼塊所表示的字符串內(nèi)容。例如Label控件、Panel控件等。

        3.4 數(shù)據(jù)綁定類控件

        此類控件是ASP.NET提供的服務(wù)器端控件,除了可以綁定普通的變量類型,也可以綁定一個(gè)數(shù)據(jù)集合。

        4 后臺(tái)變量的要求與約束

        后臺(tái)變量是泛指的:成員變量、方法或?qū)傩缘姆祷刂怠⒈磉_(dá)式和數(shù)據(jù)集合。后臺(tái)變量需要滿足兩個(gè)方面的要求:

        4.1 變量修飾符要求

        變量是靜態(tài)或者實(shí)例字段均可。對(duì)于代碼隱藏模式的ASP.NET,以上所述的變量必須為public或protected類型(因?yàn)槭腔惻c派生類的關(guān)系),private或者internal都不行,而代碼嵌入模式則任何修飾符的變量均可訪問(一個(gè)類內(nèi)部的關(guān)系)。

        4.2 變量類型要求

        由于前臺(tái)屬性一般是字符串類型,而JavaScript基本類型也就是字符串型、數(shù)字型、布爾型,因此對(duì)應(yīng)的變量應(yīng)該也是這幾種方式,其余類型如果不被支持(如復(fù)雜類型、數(shù)組、引用類型等),前臺(tái)獲取的就是調(diào)用了變量的ToString()方法所得到的字符串。因此,在綁定時(shí),要根據(jù)情況看是否能進(jìn)行隱式類型轉(zhuǎn)換,必要時(shí)還要用相關(guān)函數(shù)來強(qiáng)制轉(zhuǎn)換,以保證前臺(tái)可以獲得正確的值。當(dāng)然,對(duì)于數(shù)據(jù)綁定類控件,它的有些屬性可以為數(shù)據(jù)集合,但這時(shí)的綁定只能通過特定的方式才被支持。

        5 綁定后臺(tái)變量的方式

        5.1 <%= ……%>方式綁定后臺(tái)變量

        此種方式在ASP中就開始使用了。ASP通過包含在< % 和 %>中的表達(dá)式將執(zhí)行結(jié)果輸出到客戶瀏覽器,如:< % =now() %>就是將當(dāng)前時(shí)間的值發(fā)送到客戶瀏覽器中。在ASP.NET中,這個(gè)表達(dá)式依然可以使用,并可以應(yīng)用于前臺(tái)代碼的服務(wù)器端控件屬性或HTML標(biāo)簽屬性、JavaScript代碼中、Html顯示內(nèi)容的位置三種情況,但是要注意,除了上述的一般性約束外,對(duì)于控件屬性,還必須是綁定到非服務(wù)器端控件的屬性。另外,它只能綁定上面講的成員變量、方法或?qū)傩缘姆祷刂岛捅磉_(dá)式這三種變量類型,不支持綁定數(shù)據(jù)集合。

        5.2 <%# …… %>方式綁定后臺(tái)變量

        該方式是在.aspx頁中使用數(shù)據(jù)綁定的基礎(chǔ),所有數(shù)據(jù)綁定表達(dá)式都必須包含在這些字符中。

        (1)從可以使用的范圍來看,除了能出現(xiàn)在服務(wù)器端控件屬性或HTML標(biāo)簽屬性、JavaScript代碼中、Html顯示內(nèi)容外,還可以出現(xiàn)在服務(wù)器端控件的屬性中。

        (2)從綁定的變量類型上看,還可以配合ASP.NET的數(shù)據(jù)綁定類控件,來綁定數(shù)據(jù)集合。如:ArrayList(數(shù)組),Hashtable(哈稀表,DataView(數(shù)據(jù)視圖)),DataReader等。

        (3)從用法上看,在前臺(tái)代碼中除了在相應(yīng)位置寫上<%# %>外,在后臺(tái)代碼中,還需要調(diào)用DataBind方法。只有執(zhí)行了相應(yīng)控件的DataBind方法,前臺(tái)代碼中這些控件中使用<%# %>的綁定才會(huì)發(fā)生,否則的話將不會(huì)被賦值,而是默認(rèn)空值。

        6 結(jié)論

        兩種綁定方式上約束基本相同,都要求與屬性匹配即可將數(shù)據(jù)顯示在預(yù)期顯示的位置。<%# …… %>的使用位置更廣泛,尤其是支持服務(wù)器端控件和綁定數(shù)據(jù)集合。后臺(tái)代碼方面,<%# …… %>需要調(diào)用DataBind才能完成綁定,<%= ……%>則沒有這方面要求。

        兩者在執(zhí)行機(jī)制上的區(qū)別:<%= ……%>是在程序執(zhí)行時(shí)調(diào)用(應(yīng)該是在頁面的RenderControl事件過程中完成的,也就是通常情況下我們可以看到的后臺(tái)代碼都執(zhí)行完畢后再去到前臺(tái)代碼中進(jìn)行賦值綁定);而<%# ……%>是在DataBind()方法之后被調(diào)用,一旦調(diào)用了DataBind(),則它對(duì)應(yīng)的控件將綁定變量。

        參考文獻(xiàn):

        [1]邵珠貴,楊惠英.關(guān)于ASP.NET網(wǎng)頁間數(shù)據(jù)共享的研究[J].吉林廣播電視大學(xué)學(xué)報(bào),2012,(1).

        [2]劉偉,蔡晉強(qiáng).基于ASP.NET數(shù)據(jù)綁定控件的應(yīng)用[J].電腦開發(fā)與應(yīng)用,2010,(9).

        [3]陳志堅(jiān).ASP.NET數(shù)據(jù)綁定技術(shù)的分析與研究[J].福建電腦,2010,(7).

        [4]劉永艷,劉敦敏.淺談ASP.NET數(shù)據(jù)的綁定[J].電腦編程技巧與維護(hù),2009,(10).

        猜你喜歡
        字符串前臺(tái)服務(wù)器端
        公路電助力 從幕后走向前臺(tái)
        中國自行車(2018年6期)2018-07-23 03:17:24
        孟晚舟:從前臺(tái)打雜到華為副總裁
        海峽姐妹(2018年6期)2018-06-26 07:27:15
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        前臺(tái)、后臺(tái)精彩花絮停不了
        網(wǎng)站前臺(tái)設(shè)計(jì)分包合同中應(yīng)注意的問題
        在Windows中安裝OpenVPN
        一種新的基于對(duì)稱性的字符串相似性處理算法
        依據(jù)字符串匹配的中文分詞模型研究
        網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
        一種針對(duì)Java中字符串的內(nèi)存管理方案
        中文AV怡红院| 国产午夜激无码av毛片不卡| 97在线视频人妻无码| 国产精品无码久久久久成人影院| 国产三级精品三级在线观看| 人妻丝袜无码国产一区| 精品国产免费Av无码久久久| 日韩在线不卡一区在线观看| 淫欲一区二区中文字幕| 男人的天堂av你懂得| 欧美成人精品第一区| 国产尤物精品视频| 欧美最大胆的西西人体44| 麻豆乱码国产一区二区三区| 91精品国产无码在线观看| 亚洲一区域二区域三区域四| 日韩熟女系列中文字幕| 蜜桃av抽搐高潮一区二区| 成年女人毛片免费观看97| 亚洲欧美v国产蜜芽tv| 国产一区三区二区视频在线观看| 亚洲天堂av中文字幕在线观看| 亚洲精品无码不卡在线播he| 国产精品熟女视频一区二区| 亚州精品无码人妻久久| av中文字幕在线资源网| 日本系列有码字幕中文字幕| 欧美乱大交xxxxx潮喷| 久久精品亚洲中文字幕无码网站| 日本精品网| 国产内射视频免费观看| 日本亚洲视频一区二区三区| 免费a级毛片无码免费视频120软件| 亚洲国产美女精品久久久| 日本a在线播放| 青青视频在线播放免费的| 国产精品亚洲一级av第二区| 亚洲日韩精品a∨片无码加勒比| 免费毛片a线观看| 无码精品一区二区免费AV| 一区二区av日韩免费|