2014-09-12 52 views
2

我想在中繼器控件內部使用if語句並在if上接收InvalidOperationException。ASP.Net中繼器控制 - 使用條件語句

我想要做的是隻有當當前項目的UserType設置爲Admin時,纔在中繼器中運行代碼塊。

 <asp:Repeater ID="rptSingleValueHeaders" runat="server"> 
     <ItemTemplate> 
      <% if (Eval("UserType").ToString() == "Admin") { %> 
       <div> 
        do stuff here 
       </div> 
      <% } else { %> 
       <div> 
        do other stuff 
       </div> 
      <% } %> 
     </ItemTemplate> 
    </asp:Repeater> 

我的數據源是在aspx.cs中定義的,它包含一個名爲UserType的屬性,它是一個字符串類型。讓我知道是否需要提供更多細節。謝謝。

+0

的可能重複[if語句中繼的ItemTemplate(http://stackoverflow.com/questions/17168851/if-statement-in-中繼器 - itemtemplate) – melancia 2014-09-12 18:41:08

+0

東西顯示html標記 – noclist 2014-09-12 18:43:56

+0

在您引用的答案不適用,因爲我試圖評估來自我的數據源的屬性。 – noclist 2014-09-12 18:44:46

回答

7

你可以使用服務器端的可視性:

<ItemTemplate> 
    <div runat="server" visible='<%# (Eval("UserType").ToString() == "Admin") %>'> 
     I show this HTML 
    </div> 
    <div runat="server" visible='<%# (Eval("UserType").ToString() != "Admin") %>'> 
     I show this other HTML 
    </div> 
</ItemTemplate> 
+0

接收解析器錯誤 - - > 無法從其字符串表示形式'<%(Eval(「UserType」)。ToString()==「Admin」)%>'爲'Visible'屬性創建System.Boolean類型的對象。 – noclist 2014-09-12 18:56:13

+0

編輯可以檢查嗎? – Tushar 2014-09-12 18:58:48

+1

這樣做,謝謝你的幫助。 – noclist 2014-09-12 19:06:44