2012-03-22 6 views
0

私はdevexpress gridviewで使用するViewModelを持っているとしましょう。そのビューの中に、私は私のモデルはIEnumerableを であり、このdisplay image devexpress gridview、これはロケット科学ですか?

@Html.DevExpress().GridView(
    settings => 
    { 
     settings.Name = "myGridView"; 
     settings.KeyFieldName = "Id"; 
.... 
    var column = settings.Columns.Add("Id", "Id"); 
    column = settings.Columns.Add("Title", "MyTitle"); 
    ...  
    }).Bind(Model).GetHtml() 

のようなDevExpress社のGridViewの中で自分のデータを表示し、すべてがこのコードを上にしてokです。 今、Id列の前または後にグリッドビュー内に画像を表示したいと思います。 だから私はこれを行うべきであることがわかったHtml.DevExpress().BinaryImage() しかし、私は今ここにはまっている。 最初に私のビューモデルと私のイメージがどのように保存されているかを記述する。 マイモデルにはList<Photo>コレクションがあります。画像はFileContentResultとなっています。

だから私はこのHtml.DevExpress().BinaryImage()を使うべきであることを知っているが、私は知らない。 ここに私が従わなければならない例があります。

column = settings.Columns.Add("", "Photos"); 
     Html.DevExpress().BinaryImage(
      imageSettings => 
      { 
       //imageSettings.Name = "Photo"; 
       imageSettings.Width = 100; 
       imageSettings.Height = 100; 
      }) 
      .Bind(((System.Data.Linq.Binary)DataBinder.Eval(Model, "Photo")).ToArray()) 
      .Render(); 

更新: 私は、このソリューションを試すべきだと思います。ここでの問題は、Photosコレクションの最初のイメージをグリッドに表示したいということです。私は以下のコードで試したが運がない。エラーはありません。

var photoColumn = settings.Columns.Add("Photos[0].ImageData", "Foto"); 
     photoColumn.Visible = true; 
     photoColumn.Width = 20; 
     photoColumn.FieldName = "Photo.ImageData"; 
     photoColumn.ColumnType = MVCxGridViewColumnType.BinaryImage; 
     DevExpress.Web.ASPxEditors.BinaryImageEditProperties properties = (DevExpress.Web.ASPxEditors.BinaryImageEditProperties)photoColumn.PropertiesEdit; 
     properties.ImageHeight = 50; 
     properties.ImageWidth = 50; 

答えて

1

MVCxGridViewColumnTypeは二値をサポートしているので、あなたは、直接GridViewの内二値を使用する必要はありません。
関連リンク - GridView - How to load binary image within BinaryImage column

は、また、データ行の中に二値を使用する方法を示しGrid View - Templatesデモをご覧ください。

settings.Columns.Add(column => { 
    column.SetDataItemTemplateContent(c => { 
     Html.DevExpress().BinaryImage(
      imageSettings => { 
       imageSettings.Name = "Photo" + c.KeyValue; 
       imageSettings.Width = 50; 
       imageSettings.Height = 50; 
      }) 
      .Bind(Here_Your_Code_To_Retrieve_Image_From_Current_DataItem) 
      .Render(); 
    }); 
}); 
+0

おかげで、質問が更新されます。 – BobRock

0

は、あなたはDataItemTemplateをカスタマイズし、次のように内部の二値をカスタマイズする必要がある場合には。
関連する問題