日期:2014-05-18  浏览次数:20787 次

前台服务器端代码
C# code

            <% 
                if (ds != null)
                {
                %>
                <%
                if (ds.Tables[0].Rows.Count > 0)
                {
                    %>
                    <%
                StringBuilder str = new StringBuilder();%>
                    <%foreach (System.Data.DataRow row in ds.Tables[0].Rows)
                      {%>
                          <%str.Append("<tr>");%>
                          <%for (int i = 0; i < 9; i++)
                          {
                              if (i%3==1&&i!=1)
                              {%>
                                  <%str.Append("<tr>");
                              }%>                       
                              str.AppendFormat(<td align="center" width="30%"><a href=Big_Picture.htm><img alt="" src="<%=ds.Tables[0].Rows[i][0].ToString()%>" border="0" /></a></td>);      
                          <%if (i!=0&&i % 3 == 0)
                          {%>
                              <%str.Append("</tr>");
                          }%>                   
                        <%}
                          return; 
                      }
                }
                }
         %>



我想显示三行的图片,<%%>不太会用,<tr></tr>总是加不上,str.AppendFormat()也总是显示为字符串在页面!请问该怎么改?

------解决方案--------------------
<% 
if (ds != null)
{

if (ds.Tables[0].Rows.Count > 0)
{

StringBuilder str = new StringBuilder();
foreach (System.Data.DataRow row in ds.Tables[0].Rows)
{
str.Append("<tr>");
for (int i = 0; i < 9; i++)
{
if (i%3==1&&i!=1)
{
str.Append("<tr>");
}
str.AppendFormat(<td align="center" width="30%"><a href=Big_Picture.htm><img alt="" src="<%=ds.Tables[0].Rows[i][0].ToString()%>" border="0" /></a></td>);
<%if (i!=0&&i % 3 == 0)
{
str.Append("</tr>");


return; 
}
}
}
%>

<%=str .ToString()%>

这种写法,建议在后台写方法,哪怕是拼接字符串

去掉多余的<%%>,增强可读性

注意红色部分,str.AppendFormat("<a href=\"\">aaa</a>")的形式

另外建议用label,进行赋值,除非MVC

------解决方案--------------------
这个有点晕了,你明明是在写服务端代码,直接把它们移到cs的一个protected方法中,aspx中直接调用