2012-03-17 3 views
1

ASP.NETアプリケーションのバックエンドコード(c#)にHTMLタグを作成する際の質問があります。ASP.NET - 動的にHTMLタグを構成する

レッツは、私は以下のようにデータテーブルを持っていると言う:

enter image description here

私は動的に変換したい

(複数のforeachを使用している場合、他の条件)ULと以下のように李の形にDataTableを:

enter image description here

最後に私の期待出力:

enter image description here

これを達成するためのベストプラクティスは何ですか? 助けてください。

ありがとうございます。

更新日: 私は基本的に他の人(子供や孫)を含ん人(親)の階層構造を持っているこのポストHow do I display non-normalized data in a hierarchical structure?

+0

これは、テーブルの生成方法によって異なります...どのように生成されているのですか、データベースのデータはどうなっていますか? –

+0

テーブルが固定されていない、上記のテーブルはどのようにデータが格納されるのですか – sams5817

答えて

3

あなたから別の代替ソリューションを見つけた、あなたが使用できるように、 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(); 
    } 
} 
+1

これは非常に洗練されたソリューションです。 –

+0

@TravisJありがとう:) – Robbie

関連する問題