c#从数据库动态加载Radgrid中的图像

时间:2016-12-16 07:58:34

标签: c# telerik

我正在尝试从数据库动态创建和加载radgrid。如何使用templatecolumn动态加载图像?

我正在使用数据表绑定数据

提前致谢

2 个答案:

答案 0 :(得分:0)

在Rad网格中添加RadBinaryImage

在GridTemplatedColumn中,添加RadBinaryImage。

function news_details($id, $slug){
    print_r("News Id    : ". $id);
    print_r("<br>");
    print_r("News Slug  : ".$slug);
}

此处使用了一个小技巧,将ImageUrl设置为默认图像在设置DataValue之前,仅当DataValue为NULL时才显示默认图像

在您的DBML中,您必须将MyPhoto字段更改为<telerik:GridTemplateColumn SortExpression="MyField" DataField="MyField"> <ItemTemplate> <telerik:RadBinaryImage runat="server" ID="RIB_dsds" ImageUrl="~/Site/Images/kiterror.png" DataValue='<%# ((Type)Container.DataItem).MyPhoto %>' AutoAdjustImageControlSize="false" Width="60px" Height="60px" ToolTip='<%# string.Format("Photo of {0}",((Type)Container.DataItem).PhotoLabel) %>' AlternateText='<%# string.Format("Photo of {0}",((Type)Container.DataItem).CPS_PhotoLabel) %>' /> 单击您的Dbml,单击该字段。属性并使用“类型”下拉列表选择良好类型。

编辑:正如您的问题是关于这样做programmaticaly

答案 1 :(得分:0)

我成功地动态完成了。这就是代码。

创建列时,我将其创建为具有唯一ID的模板列 GridTemplateColumn templateColumn = new GridTemplateColumn(); grid.MasterTableView.Columns.Add(templateColumn); templateColumn.DataField = <Column Name from DB>; templateColumn.HeaderText = <Column Name from DB>; templateColumn.ItemTemplate = new MyTemplate(<Column Name from DB>); columnList.Add(<Column Name from DB>);//add column to grid dt.Columns.Add(<Column Name from DB>);//add column to datatable

private class MyTemplate : ITemplate { protected System.Web.UI.WebControls.Image pic; private string colname; public MyTemplate(string cName) { colname = cName; } public void InstantiateIn(System.Web.UI.Control container) { pic = new System.Web.UI.WebControls.Image(); pic.ID = "img_" + colname;\\create an Id for the column(colname is same as DB value for column) container.Controls.Add(pic); } }

从数据库加载图片时

System.Web.UI.WebControls.Image pic = new System.Web.UI.WebControls.Image(); pic = (System.Web.UI.WebControls.Image)item.FindControl("img_" + <Column Name from DB>)\\access by Id created for column; pic.ImageUrl = string.Format("data:image/png;base64,{0}", imageString);