I use the following approach for custom graphics generation for image verification inside an UpdatePanel. Try converting your custom graphic into an aspx file using the model of VerificationImage.aspx[.cs] as shown below. Use a parameter to make sure you pull the required image instead of getting a stale cached version if needed.
EXAMPLE
VerificationImage.aspx<%@ Page Language="C#" AutoEventWireup="true" CodeFile="VerificationImage.aspx.cs" Inherits="Example.WebSite.VerificationImage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Image ID="m_verificationImage" runat="server" />
</div>
</form>
</body>
</html>
VerificationImage.aspx.csusing System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.Diagnostics;
namespace Example.WebSite
{
public partial class VerificationImage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Session[Helpers.SessionInfo.ImageText] = "";
Verify.ImageVerify imgVer = new Verify.ImageVerify(); // Note: Verify.ImageVerify is my custom class
string imageText = imgVer.GetRandomAlphaNumeric(4);
Session[Helpers.SessionInfo.ImageText] = imageText;
Bitmap imageBitMap = imgVer.GenerateImage(imageText);
imageBitMap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
}
}
}
Reference to image used in an UpdatePanel<asp:Image ID="m_verificationCodeImage" runat="server" ImageUrl="~/UtilityControls/VerificationImage.aspx" />
Updating the ImageUrl server side in code behind
private void UpdateVerificationImage()
{
string postbackUrlParam = ? // add code to generate a unique parameter to prevent caching
m_verificationCodeImage.ImageUrl = "~/UtilityControls/VerificationImage.aspx?" + postbackUrlParam;
}