2012-03-22 2 views
0

하자 내가 devexpress gridview에서 사용하는 ViewModel 있습니다. 그 내부보기 나는 내 모델을 IEnumerable 이다이디스플레이 이미지 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에 내 데이터를 표시하고 모든 코드 위로 괜찮습니다. 이제 Id 열 앞이나 뒤에있는 gridview 내부에 이미지를 표시하려고합니다. 그래서이 작업을 수행해야한다는 것을 알았습니다. Html.DevExpress().BinaryImage() 하지만 잠시 동안 여기에 갇혀 있습니다. 먼저 내 viewmodel 및 내 이미지 저장 방법을 설명합니다. 내 모델의 컬렉션은 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(); 

업데이트 : 나는이 솔루션을 시도한다고 생각합니다. 여기서 문제는 포토 컬렉션의 첫 번째 이미지를 내 눈금에 표시하려는 것입니다. 아래 코드로 시도했지만 운이 없었습니다. 오류 없음.

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이 BinaryImage을 지원하기 때문에, 직접의 GridView 내에서 BinaryImage를 사용할 필요가 없습니다.
관련 링크 - GridView - How to load binary image within BinaryImage column

는 또한 데이터 행 내에서 BinaryImage를 사용하는 방법을 보여줍니다 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을 사용자 정의하고 다음과 같이 내부 BinaryImage을 사용자 정의 할 필요가 경우.