ASP.NET前台代碼綁定後台變數方法

來源:互聯網
上載者:User

網頁特效代碼中

html顯示內容的位置(也就是開始標籤與結束標籤之間的內容,如<div>這裡</div>(html標籤)或者<asp教程:label id="label2" runat="server" text="label">這裡</asp:label>(伺服器端控制項),它作為預留位置把變數顯示於符號出現的

對於第一種位置,有一些約束條件:

(1)一般的屬性要求是字串型或數值型(下面會提到有些伺服器端屬性支援屬性為資料集合);

(2)並不是所有的屬性都可以綁定變數,有些屬性例如runat屬性必須是"server"常量,即使綁定的字串是server,也會導致分析器分析時出錯;

(3)有一種屬性,他要求屬性值有約束(類型約束,比如伺服器端控制項要求tabindex屬性是short類型,或者字串內容有約束),也應該在綁定時滿足,否則依然可能編譯時間報錯;

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

(5)還要注意,即使對於同一類屬性,伺服器端和html的屬性的處理機制也不同,同樣是tabindex(tabindex),前者如果不滿足,則分析器錯誤,後者則忽略這一問題。

對於第二種位置,一般只要綁定的後台變數和javascript中資料類型相容即可。

對於第三種位置,如果綁定出現的位置不在伺服器端控制項內部,則沒有約束條件,只要是常量字串可以出現的位置,均可以綁定。但是對於置於伺服器端控制項內部,也就是上面那種<asp:label id="label2" runat="server" text="label">這裡</asp:label>的方式,則有約束條件。通過總結,歸納為四類伺服器端控制項,如果綁定的代碼出現在這些控制項的開始和結束標籤之間(這裡所說的控制項,是指如果綁定代碼外有多層的嵌套控制項包圍,則是指包圍綁定代碼的最內層控制項),有不同的顯示結果:

(1)約束型控制項:這類控制項要求它的開始標籤和結束標籤中只能包含指定的子控制項,因此如果在這裡出現代碼塊,將編譯錯誤。例如:

<asp:datalist runat="server"></asp:datalist>,在它之間,要求必須嵌套<itemtemplate></itemtemplate>。

(2)非嵌套類控制項:這類控制項,不允許在內部嵌套其他控制項或標籤,只能是常量字串,它會將開始標籤和結束標籤中常量字串內容作為他的屬性。例如上面提到的textbox,它會將標籤間內容作為它的text屬性值。

(3)嵌套類控制項:這類控制項,可以嵌套其他任意控制項,也可以包含字串,因此可以正常顯示綁定代碼塊所表示的字串內容。例如label控制項、panel等。

(4)資料繫結類控制項:這類控制項是asp.net教程提供的伺服器端控制項,除了可以綁定普通的變數類型,也可以綁定一個資料集合(只能採取下面的第二種方式實現)。

關於是否加引號:在以上三個位置使用時,是否應該將<%= str%>或<%# str %>置於單引號或雙引號中呢?對於在不同位置,處理的方式是不同的:(具體請在下面兩種方式的具體介紹時,加以體會)

(1)對於第一種位置,由於javascript是弱類型的,如果綁定時加引號,顯然就認為就當做字串來處理,這始終是正確的;如果綁定時不加引號,它將認為這是個數值型的,那麼如果擷取的真是數值,當然可以,如果是非數值型,則將產生指令碼錯誤,這即使對於javascript賦值常量時,也是同樣的:

以下為引用的內容:

var test1 = 123b;//運行時報錯
var test2=123;//正確,是數值型
var test3="123b";//正確,字串型

這裡所講的前台即通常的.aspx檔案,後台指的是與aspx相關聯的codebehind,檔案尾碼名為.aspx.cs;另一方面,這裡的綁定是指使用者發出訪問某一頁面指令後,伺服器端在執行過程中就已經將前台代碼進行了賦值,而後產生html格式回傳用戶端顯示,而並非已經顯示到用戶端後,然後通過其他方法(如ajax)去伺服器端擷取相應變數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.