2016-10-11 9 views
-1

enter image description hereif elseをif elseと併用するには?

私は2つの製品ページを持っています。 multipleProductがfalseの場合、ProductDetails-1.aspxにリダイレクトする必要があります。それ以外の場合は、ProductDetails-2.aspxページをリダイレクトする必要があります。

私はコンパイルエラーを得た:他に<%

<asp:Repeater ID="rpProducts" runat="server"> 
    <ItemTemplate> 
     if <%# Eval("MultipleProduct").ToString() == "No") 
     {%> 
     <li> 
      <i class="fa fa-angle-right"></i>&nbsp; 
      <a href="ProductDetails-1.aspx?ProductID=<%# Eval("ID").ToString()%>" /><%# Eval("ProductName").ToString() %></a> 
     </li> 
    <% }%> 
    <% else 
     { %> 
     <li> 
      <i class="fa fa-angle-right"></i>&nbsp; 
      <a href="ProductDetails-2.aspx?ProductID=<%# Eval("ID").ToString()%>" /><%# Eval("ProductName").ToString() %></a> 
     </li> 
     <%} %>          
    </ItemTemplate> 
</asp:Repeater> 
+0

あなたが直面している問題は何ですか? – TheGameiswar

+0

コンパイルエラー:<%else – Shkupjane

+0

丸括弧を確認してください。 –

答えて

1

あなたのコードは少し厄介である、でメソッドを作成し、別のアプローチで、より読みやすく、より少ない重複コードとエラーしにくいを試してみてくださいあなたのコードの背後に

製品のURLを取得するには、あなたのaspxクラスで保護されたメソッドを作成します。

protected string GetProductUrl(string multipleProduct, int ID) 
{ 
    string url = multipleProduct == "No" ? "ProductDetails-1.aspx" : "ProductDetails-2.aspx"; 

    return url + "?ProductID=" + ID; 
} 

あなたのaspxファイルでは、次のコードに置き換えてください。

<asp:Repeater ID="rpProducts" runat="server"> 
    <ItemTemplate> 
     <li> 
      <i class="fa fa-angle-right"></i>&nbsp; 
      <a href="<%# GetProductUrl(Eval("MultipleProduct").ToString(), (int) Eval("ID")) %>" > 
        <%# Eval("ProductName").ToString() %> 
      </a> 
     </li> 
    </ItemTemplate> 
</asp:Repeater> 
+0

エラーが発生しました:データバインディング: 'System.Data.DataRowView'に 'MultipleProduct'という名前のプロパティが含まれていません。 – Shkupjane

+0

のEval( "ID"))>> MultipleProduct nvarchar(100) – Shkupjane