我继承了一个ASP.net Web应用程序,前面的开发人员使用了为每个向用户显示数据的表都有一个ASP.net GridView的约定,即使它不是一个利用分页的页面或以任何方式查看。
我已经厌倦了与GridView相关的一些限制和瑕疵,我想在某些页面上滚动自己。
我的问题:“这是个好主意吗?” “有什么陷阱?”
我的代码如下所示:
<table>
<%=EquipmentTableHeadingsRowHTML() %>
<%foreach(Entry entry in TableEntries)
{ %>
<%=WriteTableRowForEntry(entry) %>
<% } %>
</table>
public string WriteTableRowForEntry(Entry entry)
{
StringBuilder sb = new StringBuilder();
sb.Append("<tr><td>");
sb.Append(entry.Description);
sb.Append("</td><td>");
sb.Append(entry.NumberRequired);
sb.Append("</td><td>");
sb.Append(entry.NumberCurrent);
sb.Append("</td><td>");
sb.Append(entry.NumberRequired);
sb.Append("</td><td>");
sb.Append(entry.CostEach);
sb.Append("</td><td>");
sb.Append("TOTAL COST");
sb.Append("</td></tr>");
return sb.ToString();
}
答案 0 :(得分:2)
没有。这会使用演示文稿构建您的代码。你通常不应该让你的代码生成html。
转发器对您来说可能是更好的选择。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.aspx
答案 1 :(得分:2)
这很有趣..我只是继承了第三方编写的代码,并将它发回给他们告诉他们使用Repeater或List,但后来我意识到他们正在使用几个java脚本框架依赖可预测的ID。旧版本的.NET框架在指定服务器控件的ID方面不太灵活。第三方开发人员在代码隐藏的循环中创建了htmlElements以进行补偿,所以在这种情况下她有充分的理由。
基于这种新体验的简短回答是,在我看来,在代码隐藏中生成表格(或其他可重复内容)并不是一件好事。阅读代码更加困难,并且没有使用DataBound控件的目的,因此平台的使用率很低,但如果有充分的理由,则可以进行异常。
在本代码示例中,我认为这是一件坏事。
答案 2 :(得分:0)
使用ListView,你最终会得到更清晰的标记; - )