ASP.Net控制項範本中根據綁定對象的屬性控制元素隱現技巧

來源:互聯網
上載者:User

在ASP.Net頁面中,控制部分元素隱現通常採用這種方法:

<% if (this.顯示編輯面板) { %>

……要顯示的Html代碼……

<% } %>

 

這種用法很方便,但是如果希望在伺服器控制項範本中使用它,以對綁定對象的某個屬性進行判斷時,這樣寫就會報錯了:

<% if (Eval("預設照片") != null) { %>

……要顯示的Html代碼……

<% } %>

因為我們的代碼寫在了<% …… %>裡,而如果要擷取當前綁定對象的屬性,需要將代碼寫入<%# …… %>,但是僅僅這樣修改也是不對的:

<%# if (Eval("預設照片") != null) { %>

……要顯示的Html代碼……

<% } %>

 

那麼正確的做法應該是怎樣的呢?下面提供三種正確的做法:

直接在內嵌代碼中判斷和輸出文本:

<%# (bool)Eval("是否用作預設照片")?"當前預設映像":string.Empty%>

此方法適合於僅輸出文本的情況下。註:“是否用作預設照片”是當前綁定對象的一個bool類型屬性

在伺服器控制項的Visible屬性中內嵌程式碼進行判斷:

<asp:Button ID="Button1" runat="server" Text="設為預設映像" CommandName="SetDefaultImage" Visible='<%# !(bool)Eval("是否用作預設照片") %>' />

此方法適合只需控制單一控制項隱現的情況。註:“是否用作預設照片”是當前綁定對象的一個bool類型屬性

使用PlaceHolder控制項作為容器裝載多個元素,在其Visible屬性中內嵌代碼控制內部多個元素的隱現:

<asp:PlaceHolder ID="PlaceHolder1" runat="server" Visible='<%#Eval("預設照片") != null %>'>預設照片: <a target='_blank' title='點擊開啟原始大小映像' href='<%# Eval("預設照片.全尺寸圖檔案路徑") %>'>
            <img alt='預設照片' src='<%# Eval("預設照片.頁面縮圖檔案路徑") %>' />
            <br /></asp:PlaceHolder>

此方法適合需同時控制多個元素隱現的情況。註:“預設照片”是當前綁定對象的一個自訂類型的屬性

 

下載本文的XPS版本:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.