在mvc asp.net中拆分单列到三列(视图中)

时间:2013-07-17 09:30:42

标签: c# asp.net-mvc

大家好我的观点都有以下代码

    @foreach (var group in Model.FieldGroup)
                    {

                        <table class="collapsableTable" style="margin-left: 3%;">
                            <tr class="collapsibleTitle">
                                <td width="6%" valign="top">
                                    <span class="accordionIconOff"></span>
                                </td>
                                <td width="94%" valign="top">@group.GroupName</td>
                            </tr>
                            <tr class="collapsibleContent">
                                <td colspan="2">
                                    <table>
                                        @foreach (var field in group.Fields)
                                        {
                                            <tr>
                                                <td>
                                                    @Html.CheckBox(field.FieldName)
                                                    @Html.LabelFor(model => field.FieldName, field.FieldName)
                                                </td>
                                            </tr>
                                        }
                                    </table>
                                </td>
                            </tr>
                        </table>

我的模型就像

public class FieldGroup
{
    public string GroupName { get; set; }

    public List<FieldModel> Fields { get; set; }
}

并且该字段有

 public class FieldModel
 {
    public int FieldId { get; set; }

    public string FieldName { get; set; }
 }

并在视图中生成一个带有复选框作为单列的字段列表,但是我必须在一列中有10个字段组,然后在下一列中有10个,依此类推..所以我的视图似乎就像3列出???

任何人都可以尽快帮助我!!

我得到这样的东西  Actual view like this

但我希望我的观点像这样

Expected view

2 个答案:

答案 0 :(得分:2)

听起来你正在使用表格进行布局,而不是表格数据,这通常被认为是禁忌。

我建议改变你的内循环:

<table>
    @foreach (var field in group.Fields)
    {
        <tr>
            <td>
                @Html.CheckBox(field.FieldName)
                @Html.LabelFor(model => field.FieldName, field.FieldName)
            </td>
        </tr>
    }
</table>

<div class="field-container">
    @foreach (var field in group.Fields)
    {
        <div class="field">
            @Html.CheckBox(field.FieldName)
            @Html.LabelFor(model => field.FieldName, field.FieldName)
        </div>
    }
</div>

然后使用CSS排列复选框:

.field-container {
    width: 600px;
}

.field-container .field {
    width: 200px;
    float: left;
    margin: 5px 0;
}

答案 1 :(得分:2)

希望这会有所帮助

.col1
{
    width: 33.3%;
    min-width: 200px;
    float: left;
}

.col2
{
    width: 33.3%;
    min-width: 200px;
    float: left;
}

.col3
{
    width: 33.3%;
    min-width: 200px;
    float: left;
}