0

部分ビューのテーブルの2列にデータ(画像)を表示しようとしています。以下のコードは、各画像を独自の行に表示するため、機能していないようです。私は何が欠けていますか?

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%@ Import Namespace="ULS_Site.Models"%>

<%var alternating = false;%>
<table>
<% foreach (var item in ViewData.Model as IEnumerable<image>) %>
<%{%>
<%if (!alternating) %>
<%{ %>
<tr>
<%}; %>

<td>
    <a href="<%= item.image_path %>" target="_blank" >
    <img src="<%= item.image_path %>" alt=" "  width="100"  />
    </a>
</td>
<%if (!alternating) %>
<%{ %>
</tr>
<%}; %>
<%alternating = !alternating;%>
<%}%>
</table>
4

3 に答える 3

2
<%if (alternating) %>
<%{ %>
</tr>
<%}; %>

編集: を閉じるときはtr、条件を逆にする必要があります。これは、行が実行されるまで
閉じません。tralternative = !alternating;

EDIT2:また、コードモードのままで、各行を開いたり閉じ<%=たりするのはなぜですか?%>

つまり、きれいに書く方法はありませんか?

<%if (alternating)
{%>
</tr>
<%}; %>
于 2009-11-07T18:27:56.693 に答える
1

読みやすさ重視のアプローチをお勧めします。これらの他の解決策に加えて、LI タグ内の各アイテムをリストおよび表示して、関心の分離ルールをもう少しよく観察することもできます。いくつかの標準ベースの CSS と jQuery を少し加えることで、コードを小さく読みやすく保つことができます。

<ul>
  <% foreach (var item in ViewData.Model as IEnumerable<image>) { %>
    <li>
      <a href="<%= item.urlPath %>">
        <img src="<%= item.imagePath %>" alt="" /></li>
  <% } %>
</ul>

CSS は次のように単純です。

ul {
  width:200px; /* twice the individual LI width */
}
ul li {
  height:60px;
  width:100px;
  margin:0;
  padding:0;
  float:left;
  list-style-type:none;
}

これで生の出力と構造化された処理が得られたので、小さな jQuery で代替表示のニーズに対応できます。これにより、2 つの垂直列が得られます。

<script type="text/javascript">
  $(function() {
    $("li:odd").css("background-color", "#F00");
  });
</script>

わずかに異なる jQuery セレクターは、交互の水平行に色を塗ることができます。

于 2009-11-07T21:30:54.233 に答える
0

これを試してください。これにより、テーブルの行ごとに 2 つの列をレンダリングする際の問題が解決されます。

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

<%@ Import Namespace="ULS_Site.Models"%>

<%var alternating = true;%>

<table>
<% foreach (var item in ViewData.Model as IEnumerable<image>) %>
<%{%>
<%if (alternating) %>
<%{ %>
<tr>
<%}; %>
<td>
<a href="<%= item.image_path %>" target="_blank" >    
<img src="<%= item.image_path %>" alt=" "  width="100"  />
</a>
</td>
<%if (!alternating) %>
<%{ %>
</tr>
<%}; %>
<%alternating = !alternating;%>
<%}%>
</table>
于 2009-11-07T18:37:01.057 に答える