C#中的多列有序列表

时间:2013-08-29 18:58:41

标签: c# html-lists indentation multiple-columns

如果我有大约303个员工姓名的列表。名称是有序的,我想以垂直相同的顺序显示它们至少两列。我想进一步将项目列为有序列表缩进。如果有一些奇怪的员工姓名,我希望根据需要创建addtional列。

示例数据:{#HR,Jim,Kelly,Micheal,#OPS,Janet,Karen,Mary,#IA,Jorge,Katie,#Budget,Sarah,Alex,Roger,Sam,#ESD,Tom,Fred, Jarold}

我希望此信息显示为两个或更多列的有序列表,并且对于不以#开头的字段进行缩进。我希望我已经清楚地传达了我想要完成的事情。

Column A    | Column B   | Column C   |
-----------------------------------------

-#HR        | -#IA       | -#ESD 
  -Jim      |    -Jorge  |    -Tom
  -Kelly    |    -Katie  |    -Fred
  -Micheal  | -#Budget   |    -Jarold
-#OPS       |    -Sarah  |
  -Janet    |    -Alex   |
  -Karen    |    -Roger  |
  -Mary     |    -Sam    |
------------------------------------------
Column A    | Column B   | Column C   |

这是我到目前为止提出的代码。我得到水平结果而不是垂直结果。

    writer.Write("<center><table border='0'>");

    for (int j = 0; j < staffList.Count; j++)
    {
        if ((j % 5) == 0)
        {
            //Create initial table row and column
            writer.Write("<tr><td><li>" + staffList[j].ToString() + "</li></td>");
        }
        else
        {
            //create the rest of table rows and columns
            writer.Write("<tr><td><li>" + staffList[j].ToString() + "</li></td>");
        }
    }
    writer.Write("</ul></tr>");
    writer.Write("</table></center>");

    base.Render(writer);
}

2 个答案:

答案 0 :(得分:0)

尝试使用DataGrid网络元素。您可以使用其DataBind()方法将其与集合相关联,然后您可以使用该集合来存储数据表。

对于缩进,从我的头脑中,一个简单的方法可能就像

foreach(string v in MyCollection){
    if (v[0] != '#' && v[0] != "&")
        v = "&nbsp;&nbsp;&nbsp;&nbsp;" + v;
}

对于表中的每个字符串,它不以“#”开头或已经有空格,前置一些空格。

答案 1 :(得分:0)

我能够创建一个通用表,然后捎带内置类来获取我想要的缩进。