2017-01-09 10 views
1

私は3つの列が値でid, col, valをすなわち持っ異なる列に文字列リストを破る

<table class="table table-bordered table-hover"> 
    @foreach (var item in (List<string>)TempData["tableList"]) 
     { 
     @Html.Raw(item.ToString()) 
     } 
</table> 

としてテーブルを作成していますその

<tr><td>id:1, col: a, val: 1</tr></td> 
<tr><td>id:2, col: b, val: 2</tr></td> 
<tr><td>id:3, col: c, val: 3;col: d, val: 4;col: e, val: 5</tr></td> 

のような文字列のリストを持っています。

いくつかの列は、​​3210で区切られた値で繰り返されています。このように繰り返し列を別の行に表示したいとします。

私が見たいと思ったように、どのようにリストを壊すかをお勧めします。

何か提案がありがとうございます。

ありがとうございます。

答えて

1

は、あなたがチェックすることができReplace(";", '"</td></tr><tr><td>")

@foreach (var item in (List<string>)TempData["tableList"]) 
{ 
    @Html.Raw(item.ToString().Replace(";", "</td></tr><tr><td>")) 
} 

を使用する必要が.net Fiddle example

1
@foreach (var item in (List<string>)TempData["tableList"]) 
    { 
    if (item.Contains(";")) 
     { 
      foreach (var arrayitem in item.Split(';')) { 
       @Html.Raw("<tr><td>"+ arrayitem.ToString().Replace("<tr><td>","").Replace("</td></tr>","")+ "</td></tr>") 
      } 
     } 
     else 
     { 
      @Html.Raw(item.ToString()) 
     } 
} 
Try this and check your <td><tr> should be close and open and close accordingly.And at Controller Side use like this: List<string> tableList = new List<string>(); 
     tableList.Add("<tr><td>id:1, col: a, val: 1</td></tr>"); 
     tableList.Add("<tr><td>id:1, col: a, val: 1</td></tr>"); 
     tableList.Add(" <tr><td> id:3, col: c, val: 3; col: d, val: 4; col: e, val: 5 </td></tr>"); 
     TempData["tableList"] = tableList; 
関連する問題