2017-08-02 24 views
0

DataSetをListViewにバインドしました。 ListView ItemTemplateでは、行の値が空の場合は、表示しないようにするか、<td>要素を表示しません。ASP.NET - リストビューのIF文がaspxページで機能しない場合は、代替手段がありますか?

私のコードでは、最初の行の値が表示されます。ただし、2番目の<td>要素のIfステートメントを使用しようとすると、表示されません。

<asp:ListView ID="ListView1" runat="server" GroupPlaceholderID="groupPlaceHolder1" ItemPlaceholderID="itemPlaceHolder1"> 
    <LayoutTemplate> 
     <table> 
      <asp:PlaceHolder runat="server" ID="groupPlaceHolder1"> </asp:PlaceHolder> 
     </table> 
    </LayoutTemplate> 
    <GroupTemplate> 
     <tr> 
      <asp:PlaceHolder runat="server" ID="itemPlaceHolder1"> </asp:PlaceHolder> 
     </tr> 
    </GroupTemplate> 
    <ItemTemplate> 

     <td> 
      <%# Eval("textItem1") %> 
     </td> 

     <% if (!String.IsNullOrEmpty(textItem2){ %> 
     <td> 
      <%# Eval("textItem2") %> 
     </td> 
     <%} %> 

    </ItemTemplate> 
</asp:ListView> 
文はaspxページで動作する場合、そのリストビューは、リピータに使用されていない場合は、その

、またはGridViewの(またはそれをしません?)。その文字列の値が空で表示されていないか、またはそれが囲まれている<td>要素であるかどうかを確認する必要があります。コードビハインドを使用する解決策ではありません。私の試みからこれをやる別の方法がありますか?このため

+0

データソースをlistviewに割り当てるコードを投稿することはできますか? –

+0

データセットを埋めるコードは無関係ですので、質問に追加しませんでした。 – cjtampa

答えて

0

私は上記のコードで..

をかなり簡単な方法のソリューションを使用し、私はこれをスワップアウト...

<% if (!String.IsNullOrEmpty(textItem2){ %> 
    <td> 
     <%# Eval("textItem2") %> 
    </td> 
    <%} %> 

...

<%# writeText(Eval("textItem2").ToString())%> 

と配置コード内のこのメソッドは...

public string writeText(string kiss) 
    { 
     if (!String.IsNullOrEmpty(kiss)) 
      return "<td> " + kiss + "</td>"; 
     else 
      return null; 

    } 
関連する問題