ASP.NET - динамически создавать теги HTML - PullRequest
1 голос
/ 17 марта 2012

У меня есть вопрос, касающийся создания тегов HTML для внутреннего кода (c #) в моем приложении ASP.NET.

Допустим, у меня есть DataTable, как показано ниже:

enter image description here

Я хотел бы динамически преобразовать (используя множественные foreach и если еще условие) DataTable в форму ul и li, как показано ниже:

enter image description here

Наконец, мойожидаемый результат:

enter image description here

Какова наилучшая практика для достижения этой цели?Пожалуйста, помогите.

Спасибо заранее.

Обновлено: Я нашел другое альтернативное решение из этого поста Как отобразить ненормализованные данные виерархическая структура?

1 Ответ

3 голосов
/ 18 марта 2012

По сути, у вас есть иерархия людей (родитель), которая содержит других людей (детей и внуков), поэтому вы можете использовать рекурсивную функцию для обхода потомков объекта Person.Как то так:

public class Person
{
    public IEnumerable<Person> Children { get; set; }
    public string Name { get; set; }
    public string Link { get; set; }
}

public class PeopleHtmlGenerator
{
    public string GetPeopleHtml(IEnumerable<Person> people)
    {
        return string.Format("<div>{0}</div>", GetChildren(people));
    }

    private string GetChildren(IEnumerable<Person> people)
    {
        StringBuilder result = new StringBuilder();
        result.AppendLine("<ul>");
        foreach (var person in people)
        {
            result.AppendLine(string.Format("<li><a href=\"{0}\">{1}</a></li>", person.Link, person.Name));
            result.AppendLine(GetChildren(person.Children));
        }
        result.AppendLine("</ul>");
        return result.ToString();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...