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

c# Load image in Radgrid dynamically from database

我正在尝试从 database.How 动态创建和加载 radgrid 我可以使用 templatecolumn 动态加载图像吗?

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

提前致谢

在 Rad 网格中添加 RadBinaryImage

在您的 GridTemplatedColumn 中,添加一个 RadBinaryImage。

<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) %>' />

这里使用了一个小技巧,将 ImageUrl 设置为默认图像在设置 DataValue 之前使默认图像仅在 DataValue 为 NULL 时出现

在您的 DBML 中,您必须将字段 MyPhoto 更改为 Byte() ( System.Byte[])
点击你的Dbml,点击字段。属性并使用类型下拉列表 select 好的类型。

编辑:因为你的问题是关于如何做的programmaticaly

我成功了dynamically.Here是代码。

在创建列时,我将其创建为具有唯一 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);