2011-02-08 3 views

答えて

1

私はDisplayTemplatesという名前のフォルダ内の私のViewフォルダの下に部分的なビューを作成して、DisplayTemplateを作成しました。私は部分表を呼び出しました。それが使用するモデルはデータテーブルであり、以下はコードです。あなたのビューでは、@Html.DisplayForModel("Table")

@using System.Data; 
@model DataTable 
<table id="example" class="display"> 
    <thead> 
     <tr> 
      @{ 
       foreach (DataColumn col in Model.Columns) 
       { 
       <th>@col.ColumnName 
       </th> 
       } 
      } 
     </tr> 
    </thead> 
    <tbody> 
     @{ 
      foreach (DataRow row in Model.Rows) 
      { 
      <tr> 
       @{foreach (DataColumn col in Model.Columns) 
        { 
        <td>@row[col] 
        </td> 
        } 
       } 
      </tr> 
      } 
     } 
    </tbody> 
</table> 
0

データテーブルをオブジェクトのIEnumerableにマップした場合、私はDisplayForがこれを処理すると考えます。

+0

うん、同意行うことができますが、私はプロパティがオブジェクトのためになるかわからないとのDataTableを使用する必要があります。 – Jon

+0

型付きデータセットでは、DataTableはすでにIEnumerableです。それ以外の場合は 'mydatatable.AsEnumerable()'を使うことができます。 IEnumerableの項目はDataRow(または型指定されたデータセットの場合は継承)なので、DataRowが既にHtml.Display/Html.DisplayForでサポートされているかどうか、または実装する必要があります。 – Genius

+0

カスタムDisplayTemplateが動作するかもしれないが、それを本当に実装する方法がわからないのだろうかと思います。 – Jon

関連する問題