前台服务器端代码
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中直接调用