Hi,
I try to run a LightBox with images read from a database. Because it is not working I tried to today to display an image from a base64 string. I can display the image as RadBinaryImage but it does not show up in the LightBox. I also noticed, that ITemplate.InstantiateIn is never called.
Here is the code behind:
protected void Page_Load(object sender, EventArgs e) {[...] List<RadLightBoxItem> itemsList = new List<RadLightBoxItem>(); byte[] imageData = Convert.FromBase64String("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"); RadLightBoxItem my_item = new RadLightBoxItem(); my_item.ItemTemplate = new LightBoxTemplate(imageData); my_item.Description = "The default image"; my_item.ImageUrl = "~/images/test.png"; binaryDemoImage.DataValue = imageData; binaryDemoImage.Width = 100; binaryDemoImage.Height = 100; binaryDemoImage.ResizeMode = BinaryImageResizeMode.Fit; itemsList.Add(my_item); log.Debug("Bild " + my_item.Description + " zur RadLightBox dazu."); RadLightBox1.DataSource = itemsList; RadLightBox1.DataBind();[...] }With:
class LightBoxTemplate : ITemplate{ protected RadBinaryImage image; private byte[] binary; private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public LightBoxTemplate(byte[] binary) { log.Debug("LightBoxTemplate wurde erstellt mit " + binary.Length + " byte"); this.binary = binary; } void ITemplate.InstantiateIn(Control container) { log.Debug("InstantiateIn wurde aufgerufen mit " + binary.Length + " byte"); image = new RadBinaryImage(); image.DataValue = binary; image.Width = 800; image.Height = 600; image.ResizeMode = BinaryImageResizeMode.Fit; container.Controls.Add(image); }}Here is the aspx-page:
[...] <telerik:RadLightBox ID="RadLightBox1" runat="server" PreserveCurrentItemTemplates="true" Width="800px"> </telerik:RadLightBox> <telerik:RadBinaryImage ID="binaryDemoImage" runat="server"/> <asp:Button ID="Button1" Text="Open LightBox" OnClientClick="OpenLigthBox(); return false;" runat="server" />[...]And attached is what it looks like.
Can you please help me to get the image show up in the Lightbox? Any advice is warmly welcomed.Thanks!
Ralf