1

我正在为sharepoint编写一个webpart,所以我必须有问题地生成一个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 绑定到 Dataview 的“imgURL”?

感谢您的建议

4

1 回答 1

1

您需要创建一个实现该 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();
于 2009-10-29T16:16:17.313 回答