.NET教程之代碼控制頁面部分元素隱藏與顯示_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:解讀ASP.NET防止SQL注入攻擊常用方法
      一、什么是SQL注入式攻擊? 所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務器執行惡意的SQL命令。在某些表單中,用戶輸入的內容直接用來構造(或者影響)動態SQL命令,或作為存儲過程的輸入參數,這類表單特別

          ASP.Net控件模板中根據綁定對象的屬性控制元素隱現技巧

      在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>
      此方法適合需同時控制多個元素隱現的情況。注:“默認照片”是當前綁定對象的一個自定義類型的屬性

      分享:總結歸納DataBinder.Eval使用方法
      % #Bind( Subject ) % //綁定字段 % #Container.DataItemIndex + 1 % //實現自動編號 % #DataBinder.Eval(Container.DataItem, [n] ) % 通常使用的方法 % #DataBinder.Eval(Container.DataItem, ColumnName ) % % #DataBinder.Eval(Container.Da

      來源:模板無憂//所屬分類:.Net教程/更新時間:2010-02-28
      相關.Net教程