2017-05-26 30 views
3

私はMVCに新規で、WebGridの下に2列のユーザーの名前を表示したいとします。Mvc WebGridの2つの列を単一のオブジェクトで表示する方法

enter image description here

以下の形式で現在のWebグリッド表示データ。

enter image description here

私はWebGridList<string>と結合していますが、リストには、ユーザー名が含まれています。

マイコントローラー

public ActionResult Index() 
{ 
    List<string> userList = new List<string>(); 
    userList.Add("User1"); 
    userList.Add("User2"); 
    userList.Add("User3"); 
    userList.Add("User4"); 
    return View(userList); 
} 

マイCSHTML

@using (Html.BeginForm()) 
{ 
    var grid = new WebGrid(Model); 
    @grid.GetHtml(columns: grid.Columns(grid.Column(format: (item) => item))); 
} 
+0

ので、本質的に、あなたはすべての二人のユーザ後に行を分割したいです。正しい?あなたが6つの行を持っていたら、3つの行がすべてあります。正しい? – RBT

+0

テーブルにヘッダーが表示されない理由は何ですか? – RBT

+0

私は、webGridが間違ったchoice.Inあなたのリストでは、各文字列が本質的に行である1つのレコードを表していると感じています。必要な結果を得るには、テーブルhtml要素と一緒に単純なループを書くべきです。 – RBT

答えて

1

あなたの所望の出力は、WebGridコントロールのための右のユースケースではありません。ここではループのための簡単な使用してMVCかみそりビューのテーブル生成ロジックは次のとおりです。

@model List<string> 
<table > 
      @{ 
       for (int i = 1; i <= Model.Count; i++) 
       { 
        if (i % 2 != 0) 
        { 
         @:<tr > 
        } 
        <td style="border:solid;"> 
          @Model[i - 1] 
        </td> 

        if (i % 2 == 0) 
        { 
         @:</tr> 
        } 
        } 
       } 
    </table> 

私は、すべてのテーブルセルの境界を示すために、CSSスタイルstyle="border:solid;"を追加しました。必要に応じてカスタマイズすることができます。

このコードは、テーブルの下に作成されます。

enter image description here

+0

それは本当に私を助けるソリューションをありがとう。 –

+0

素晴らしい!このソリューションで問題が解決された場合は、投票ボタンの下にある緑のチェックマークをクリックして解決策を受け入れることができます。これは、コミュニティがこのサイトで未回答の質問に焦点を当てるのに役立ちます。 – RBT