HttpHandler应用一例

目的:在DridView中的每一行显示任务进度条!
HttpHandler实现如下:

namespace THOA.Web.Utility
{
    
class HandlerTaskbar : 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>

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>

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;
}

到此处大功告成,看看实际效果


另外,建议将出现频率高的进度缓存,以提高速度!

本文来自:http://www.cnblogs.com/minzhu/archive/2007/05/26/528309.html
posted @ 2008-02-13 14:00 HeroBeast 阅读(77) 评论(0)  编辑 收藏 网摘 所属分类: Asp.Net2.0

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索


China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!

相关文章:

相关链接: