Asp.net mvc 水平显示记录ASP.NET MVC
本质上,我要做的是在一个页面上动态地构建一个数据表,这个页面的宽度是3列,长度是多少 通过一个经典的ASP示例,我已经尝试过了,但并不是所有的记录都显示出来,它们仍然以行而不是列的形式呈现在页面上 以下是我失败的代码:Asp.net mvc 水平显示记录ASP.NET MVC,asp.net-mvc,vb.net,Asp.net Mvc,Vb.net,本质上,我要做的是在一个页面上动态地构建一个数据表,这个页面的宽度是3列,长度是多少 通过一个经典的ASP示例,我已经尝试过了,但并不是所有的记录都显示出来,它们仍然以行而不是列的形式呈现在页面上 以下是我失败的代码: <table width="750" cellpadding="0" cellspacing="0" border="0"> <% Dim recCount As Integer = 0 For Each a In Model.Templates If
<table width="750" cellpadding="0" cellspacing="0" border="0">
<%
Dim recCount As Integer = 0
For Each a In Model.Templates
If recCount Mod 3 = 0 Then
If recCount <> 0 Then
Response.Write("</tr>")
Response.Write("<tr><td>template found!</td>")
Else
Response.Write("<td>template found!</td>")
End If
End If
recCount = recCount + 1
Next
%>
</table>
我不太确定该怎么做,而且我相当确定在查看页面上做起来可能真的很简单
我的另一个选择是设置要创建的有限数量的记录,并在此基础上在页面上构建表,但我更愿意动态地这样做
我想另一种选择是使用中继器控件?虽然我不知道这是否是一个可以与MVC一起工作的控件
提前感谢您的帮助。很难确切知道您希望从中得到什么,因为您没有提供输出,所以我只提供一些提示 我建议您执行以下操作,因为这将使您的生活更轻松,代码更干净,调试也更简单:
- 编写一个助手方法,它将为您完成这个逻辑,这样您就不会使视图混乱(http://www.asp.net/mvc/tutorials/creating-custom-html-helpers-cs)
- 不要使用
Response。编写
,因为这实际上是回到了经典的ASP时代,而是从助手方法返回一个字符串
然后,您可以非常轻松地单步执行helper方法,并检查返回的字符串是否正确 如果你想使用一些HTMLHelper,你可以搜索MvcContrib项目——它有Html.Grid扩展方法 或者在MVC3中,您可以使用Html.WebGrid方法 或者下面是asp.net mvc上的代码
<table>
<tr>
<% int count = items.Count();
int additionalCount = count % 3 == 0 ? 0 : 1;
int countPerColumn = count / 3 + additionalCount;
int i = 0;
foreach(var item in items)
{
if (i % countPerColumn == 0 && i != 0)
{%>
</tr><tr>
<% } %>
<td><%= item.Name %></td>
<% i++;
} %>
</tr>
</table>
对不起,我不懂VB.NET。我想我明白你的意思了。您希望在表中每行显示3条记录。对不起,我的VB太差了:
<table...>
<% var templatesCount = Model.Templates.Count %>
<% For i = 0 To templatesCount - 1 Step 3 %>
<tr>
<% For j = 0 to 2 %>
<td>
<% If i + j < templatesCount %>
Template Found!
<% End If %>
<% Next j %>
</td>
</tr>
<% Next i %>
</table>
找到模板!
你能“画”出你的意思吗?您在标题中说“水平显示记录…”,但在文本中您提到了3列宽,但长度不同。表的长度因行数而异,唯一固定的是列数。不幸的是,我们还没有从MVC 2跃升到3:(使用代码(在asp.net MVC上,它将从1变为3:)或者使用MvcContrib库,我不得不稍微修改一下代码,因为它仍然以行的形式将它们打印到屏幕上,但我想我现在就可以做到了。谢谢。这个计划是建立一个助手,一旦我知道我是否可以首先让它工作,然后我会整理它,使它成为一个助手。我将如何使用这个工具访问Model.Templates中的实际值?除此之外,它工作得还不错。
或
奇怪的是,它们都没有将数据打印回页面。虽然当它只是打印“模板发现”出来,它的工作是一个对待。对不起。怎么样
或者你是否更正了我的c#数组括号?