2013-10-01 70 views
0

下面的內容應該很簡單,但我是新手,所以我不知道如何在ASP.NET中快速執行此條件。在條件下顯示列基礎

基本上,我想顯示覆選框,如果Eval("CompanyID")是NULL或什麼都沒有。

<asp:DataList BackColor="#ffffff" id="DataList1" DataSourceID="dsCompanyListPartialMatch"> 
    <ItemTemplate> 
    <td style="width: 50px; border-right:1px solid black; border-spacing:0;"><%#Eval("Row")%></td> 
     <td style="width: 70%"><asp:Literal ID="litFoo" runat="server" Text='<%#Eval("Company")%>' /> </td> 
     <td style="width: 10%"><asp:Literal ID="Literal1" runat="server" Text='<%#Eval("CompanyID")%>' /> </td> 
     <td style="text-align:right;"> 
      <asp:CheckBox id="check1" runat="server" /> 
     </td> 
     <%-- Example: If (Eval("CompanyID") == "" Then Show this Below. Else, don't show it --%> 
      <td style="text-align:right;"><asp:CheckBox id="check1" runat="server" /></td> 
     <%-- END IF --%> 
    </ItemTemplate> 
</asp:DataList> 

回答

0

您可以使用CSS來隱藏列。只有

<td style="text-align: right; <%# (Eval("CompanyID") == null || Eval("CompanyID").ToString() == "") ? "": "display: none" %>"> 
    <asp:CheckBox ID="CheckBox1" runat="server" /> 
</td> 

隱藏複選框

<td style="text-align: right;"> 
    <div style="<%# (Eval("CompanyID") == null || Eval("CompanyID").ToString() == "") ? "": "display: none" %>"> 
     <asp:CheckBox ID="CheckBox1" runat="server" /> 
    </div> 
</td> 
+0

當CompanyID爲null時,將會拋出異常嗎?Eval().ToString() – abatishchev

+0

我更新了我的代碼。 – Win

+0

這實際上隱藏了複選框,但也隱藏了標籤,所以列作爲移位。任何建議只是隱藏複選框? – milacay

1

你嘗試

<asp:CheckBox Visible='<%= Eval("CompanyID") != null ' /> 

+0

我得到這個錯誤,當我想你的代碼:服務器標記不能包含<% ... %>結構。 – milacay

+0

@milacay:你確定你<%=',沒有其他人嗎?請參閱http://stackoverflow.com/questions/1529944/why-cant-i-set-the-asplabel-text-property-by-calling-a-method-in-the-aspx-file – abatishchev

+0

是的,我把確切您的建議代碼並出現此錯誤:無法爲其'Visible'屬性的字符串表示'<%= Eval(「CompanyID」)!= null'創建類型爲'System.Boolean'的對象。 – milacay