Itemtemplate для просмотра изображения в Asp Datagrid (в коде) - PullRequest
1 голос
/ 29 октября 2009

Я пишу на веб-части для sharepoint, поэтому мне нужно сгенерировать Datagrid проблематично.

Ситуация такова, что я получаю Dataview, генерирую Gris и связываю данные. В одном столбце должно быть изображение, поэтому я должен сгенерировать столбец шаблона с шаблоном элемента.

Итак, код выглядит так:

//Instantiate the DataGrid, and set the DataSource
_grdResults = new DataGrid();
_grdResults.AutoGenerateColumns = false;
_grdResults.DataSource = view;
TemplateColumn colPic = new TemplateColumn();
colPic.HeaderText = "Image";

Я нашел десятки примеров для asp для создания шаблона элемента, но как создать его в коде и связать его ImageUrl с "imgURL" из Dataview?

спасибо за любой совет

Ren

1 Ответ

1 голос
/ 29 октября 2009

Вам необходимо создать класс, который реализует этот интерфейс ITemplate.

public class TemplateImplementation : ITemplate 
{ 
    public void InstantiateIn(Control container)
    {
        Image image = new Image();
        image.DataBinding += Image_DataBinding;
        container.Controls.Add(image); 
    }

    void Image_DataBinding(object sender, EventArgs e)
    {
        Image image = (Image)sender;
        object dataItem = DataBinder.GetDataItem(image.NamingContainer);
        // If the url is a property of the data item, you can use this syntax
        //image.ImageUrl = (string)DataBinder.Eval(dataItem, "ThePropertyName");
        // If the url is the data item then you can use this syntax
        image.ImageUrl = (string)dataItem;
    } 
}

Затем вы устанавливаете свой ItemTemplate для экземпляра этого класса.

colPic.ItemTemplate = new TemplateImplementation();
...