动态分配列标题和行并访问C#中的每个单元格

时间:2014-01-21 06:07:33

标签: javascript c# asp.net matrix tabular

我需要这样的输出:

enter image description here

必须动态分配列标题。 房间也是动态分配的。

我想通过获取房间名称和日期来访问每个单元格(标记为X)。

for example:
    - Room 1, 1/2/2014
    - Room 2, 1/3/2014
    - Room 3, 1/2/2014
    - Room 4, 1/4/2014

到目前为止,我已将这些项目分配给C#列表,但尚未将它们绑定为列标题。

此外,每个单元格都必须是可点击的。

1 个答案:

答案 0 :(得分:0)

如果您使用剃刀视图引擎,您可以执行以下操作。

在你的控制器中,它将呈现你的页面:

public ActionResult SomeAction(){
     var yourlist = SomeMethodThatReturnsYourList();
     return("yourViewName",yourList);
}

然后在你看来是这样的:

@model List<yourObjectTypes>
<table>
   <tr>
      /** empty 0,0 table cell **/
      <th></th>

      /** renders the table headers today - today + 4 days) **/
      @for (var i = 0;i<5; i++){
      <th>
        @DateTime.Now().AddDays(i).ToShortDateString();
      </th>
      }
   </tr>

   /** main loop renders rest of the table **/
   @Model.foreach(m=>{
      <tr>
          <td>m.RoomName</td>
          /** loop over the 5 days per every room in the list and put an x where appropriate **/
          @for(var x = 0;x<5;x++){
            @if(m.ShortDateString == @DateTime.Now().AddDays(x).ToShortDateString()){
               <td>X</td>
            }
            else{
               <td></td>
            }
          }
      </tr>
   });

</table>

我在这个编辑器中写道,所以它可能有语法问题。在遇到剃刀语法问题时,我总是会参考这篇文章。上面的代码应该至少足以引导您朝着正确的方向前进。祝你好运。

Razor Cheat Sheet