我在webpart上写了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绑定到Dataview的“imgURL”?
感谢任何建议
韧
答案 0 :(得分: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();