目的:在DridView中的每一行显示任务进度条!
HttpHandler实现如下:
请注意回写代码!
编译为dll,在Web app中引用生成的dll,假设名称为THOA.Web.Utility.dll,在web.config文件添加
Web Form代码如下:
Web Form cs文件代码:
到此处大功告成,看看实际效果
另外,建议将出现频率高的进度缓存,以提高速度!
HttpHandler实现如下:
namespace
THOA.Web.Utility
{
class HandlerTaskbar : IHttpHandler
{
IHttpHandler 成员#region IHttpHandler 成员
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
Task task = new Task();
ICtrl ctrTask = ICtrl.FactoryCreate(CtrType.CtrTask);
task.TaskID = Convert.ToInt32(context.Request.QueryString["task_id"]);
Bitmap map = new Bitmap(m_Width, m_Height);
Graphics g = Graphics.FromImage(map);
//--此处进度条绘图代码略
context.Response.Clear();
map.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif); //写回客户端输出流
g.Dispose();
map.Dispose();
context.Response.End();
}
}
}
{
class HandlerTaskbar : IHttpHandler
{
IHttpHandler 成员#region IHttpHandler 成员
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
Task task = new Task();
ICtrl ctrTask = ICtrl.FactoryCreate(CtrType.CtrTask);
task.TaskID = Convert.ToInt32(context.Request.QueryString["task_id"]);
Bitmap map = new Bitmap(m_Width, m_Height);
Graphics g = Graphics.FromImage(map);
//--此处进度条绘图代码略
context.Response.Clear();
map.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif); //写回客户端输出流
g.Dispose();
map.Dispose();
context.Response.End();
}
}
}
请注意回写代码!
编译为dll,在Web app中引用生成的dll,假设名称为THOA.Web.Utility.dll,在web.config文件添加
<
httpHandlers
>
< add verb = " GET " path = " Taskbar.aspx " type = " THOA.Web.Utility.HandlerTaskbar,THOA.Web.Utility " />
</ httpHandlers >
< add verb = " GET " path = " Taskbar.aspx " type = " THOA.Web.Utility.HandlerTaskbar,THOA.Web.Utility " />
</ httpHandlers >
Web Form代码如下:
<
asp:GridView ID
=
"
gvTask
"
runat
=
"
server
"
>
< Columns >
< asp:TemplateField HeaderText = " 进度 " >
< HeaderStyle HorizontalAlign = " center " Width = " 45px " />
< ItemTemplate >
< asp:Image runat = " server " ID = " imgBar " />
</ ItemTemplate >
</ asp:TemplateField >
</ Columns >
</ asp:GridView >
< Columns >
< asp:TemplateField HeaderText = " 进度 " >
< HeaderStyle HorizontalAlign = " center " Width = " 45px " />
< ItemTemplate >
< asp:Image runat = " server " ID = " imgBar " />
</ ItemTemplate >
</ asp:TemplateField >
</ Columns >
</ asp:GridView >
Web Form cs文件代码:
void
gridview_RowDataBound(
object
sender, GridViewRowEventArgs e)
{
Image imgBar = e.Row.FindControl("imgBar") as Image;
if (imgBar != null)
imgBar.ImageUrl = "Taskbar.aspx?task_id=" + e.Row.Cells[0].Text;
}
{
Image imgBar = e.Row.FindControl("imgBar") as Image;
if (imgBar != null)
imgBar.ImageUrl = "Taskbar.aspx?task_id=" + e.Row.Cells[0].Text;
}
到此处大功告成,看看实际效果
另外,建议将出现频率高的进度缓存,以提高速度!