以编程方式创建表

时间:2015-09-09 14:15:06

标签: c# asp.net asp.net-mvc html-table

我一直在寻找使用C#通过代码隐藏创建下表的时间。我发现将<tr>添加到<thead><tr><tbody>很困难。这就是表格的样子:

<table id="mytable" border="1" cellpadding="10" cellspacing="0" >
     <caption>myCaption</caption>
     <thead>
         <tr>
             <td>&nbsp;</td>
             <th scope="col">myHeader1</th>
             <th scope="col">myHeader2</th>
             <th scope="col">myHeader3</th>
         </tr>
     </thead>
     <tbody>
         <tr>
             <td>2</td>
             <td>3</td>
             <td>1</td>
         </tr>
     </tbody>
 </table>

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

创建一个强类型视图,其中包含您要绑定的任何内容列表,并使用@foreach循环:

@model List<MyClass>

<table id="mytable" border="1" cellpadding="10" cellspacing="0" >
 <caption>myCaption</caption>
 <thead>
     <tr>
         <td>&nbsp;</td>
         <th scope="col">myHeader1</th>
         <th scope="col">myHeader2</th>
         <th scope="col">myHeader3</th>
     </tr>
 </thead>
 <tbody>
    @foreach(var m in Model)
    {
     <tr>
         <td>@m.MyProp1</td>
         <td>@m.MyProp2</td>
         <td>@m.MyProp3</td>
     </tr>
    }
 </tbody>

答案 1 :(得分:0)

我使用C#MVC做了类似的事情。这是一个示例代码。希望这有助于获得一个想法。

@{int count = Model.HeadingsList.Count;}
<table>
    <thead>
        <tr>
            @foreach (string heading in Model.HeadingsList)
            {
                <th>@heading</th>
            }
        </tr>
    </thead>
    <tbody>
        @foreach (string row in Model.rowsList)
        {
            string[] cellValues = Array.ConvertAll(row.Split(','), p => p.Trim());
            if (count != cellValues.Count()) { return; } 
            <tr>
                @for (int i = 0; i < @count; i++) 
                {
                            <td>@cellValues[i]</td>
                }
            </tr>
        }
    </tbody>
</table>

我有一个如下所示的行列表。 阵列[0] [&#39;小区1&#39;&#39;小区2&#39;&#39;小区3&#39; ...] 阵列[1] [&#39;小区1&#39;&#39;小区2&#39;&#39;小区3&#39; ...]