0

我有用户可以填写数据的模板表单。表格表示为表格。在数据库中,每个填写的模板表单的数据都与 RowNum 和 ColNum 一起保存,因此我可以按需重新创建表单。问题在于,对于一​​种形式,不同行上的列会有所不同。为了清楚起见,这里是一个简单的例子:

示例表

这里第一行是空的,第二行有一列显示图片,然后是四行两列。

这只是一个例子。设置会因形式而异。现在我收集这样的数据:

List<object> dummyData = new List<object>()
            {
                new  {Row = 1, Col = 1, IsRequired = true, QuestionText = "Yes?", FieldValue = "int"},
                new  {Row = 1, Col = 2, IsRequired = true, QuestionText = "Yes?", FieldValue = "int"},
                new  {Row = 2, Col = 1, IsRequired = true, QuestionText = "No?", FieldValue = "string"},
                new  {Row = 3, Col = 1, IsRequired = false, QuestionText = "No?", FieldValue = "string"}
            };
ViewBag.Header = dummyData;

这只是为了测试,但真实数据看起来很像这样。因此,您可以看到第一条和第二条记录是针对同一行的,但现在我想不出一种在视图中正确表示数据的方法。

现在,我正在通过使用<td colspan="2">我知道不需要两列的地方对所有内容进行硬编码,但是当我在示例中遇到这样的情况时,没有关于如何添加额外列而不是新行的解决方案:

new  {Row = 1, Col = 1, IsRequired = true, QuestionText = "Yes?", FieldValue = "int"},
                new  {Row = 1, Col = 2, IsRequired = true, QuestionText = "Yes?", FieldValue = "int"},

也许我需要一种完全不同的方法,现在我想到了某种使用方法foreach和一些嵌套逻辑,但现在想不出任何可行的方法。

附言

现在我在视图中所做的就是:

@{
              foreach (var item in ViewBag.Header)
              {

                  <tr><td>item.QuestionText</td><td>item.FieldValue</td></tr>

              }
           }
4

0 回答 0