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