2011-10-04 68 views
0

我正在使用telerik ASP.NET MVC Grid模板,并且当前有几个复选框(表中的每列一个)。这样用户可以选择他们想要在网格中显示哪些列。我可以在ASP.NET MVC中使用linq做一个foreach列吗?

而不是手动写出视图上的每个复选框,我可以使用foreach循环让每个复选框在视图上为我生成?

我期待以取代这样的事情:

<%= Html.CheckBox("SomeColumnID", false, "Something")%><label for="SomeColumnID">Some Label</label> 
// . . . over and over again for each column 

像这样的东西:

<%foreach (ColumnInGivenDB) 
{%> 
    <%= Html.CheckBox(SomeColumnIDVariable, false, SomeOtherVariable)%><label for=SomeColumnIDVariable>Some Label</label> 
<%}%> 

任何想法?

回答

0

看起来你几乎在那里,但缺少绑定到Model或一个如果其属性的一部分。

你的意思是类似于以下内容?

举个例子,我有UserName属性

<% foreach (var item in Model) { %> 

    <tr> 
     <td> 
      <%=Html.CheckBox(item.UserId, (IsChecked logic here)) %> 
      <label for="<%=item.UserId%>"><%=item.UserName %></label> 
     </td> 

    </tr> 

<% } %> 
+0

这绑定到一个简单的对象就是我一直在寻找。我发现其中一列被命名为标题,因此标签不适用于该标题,因为标题是HTML标记的一部分。我知道我可以放一个if item.UserID ==“title”,但从长远来看,我可以通过手动执行每个复选框来控制显示的内容,而不是使用foreach。谢谢你的帮助:) –

+0

不客气! –

相关问题