一般应用程序 handler.ashx

在asp.net中,当某个操作需要在后台直接完成时,可以考虑添加一个一般应用程序。它的用法很简单,例子如下:

1`.首先添加一个gridview1,添加一个一般处理程序,名为Handler.ashx;

2.添加一个类,名为class1,定义两个方法,一个是Gettable,一个是Dele。代码如下:

     public static DataTable Gettable(string sql)
    {
        try
        {
            using (SqlConnection sqlcon = new SqlConnection("Persist Security Info=False;User ID=sa;Password=0;Database=jp;Server=localhost"))
            {
                sqlcon.Open();
                SqlDataAdapter sqd = new SqlDataAdapter(sql, sqlcon);
                DataSet ds = new DataSet();
                sqd.Fill(ds);
                return ds.Tables[0];
            }
        }
        catch
        {

        }
         return null;
    }

    public static bool Dele(string sno)
    {
        string sql = "delete from student where sno='" + sno + "'";
        try
        {
            using (SqlConnection sqlcon = new SqlConnection("Persist Security Info=False;User ID=sa;Password=0;Database=jp;Server=localhost"))
            {
                sqlcon.Open();
                SqlCommand sqlc = new SqlCommand(sql, sqlcon);
                sqlc.ExecuteNonQuery();
                return true;

            }
        }
        catch
        {
            return false;
        }
    }

 

3.gridview1绑定一个名为student的表,数据库名为jp,表内容如下:

sno sname ssex ssage字段;

99001 张晨 女 20

99002 李姚  男 22

代码段:

调用class1的gettable

 protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            Bindstu();
        }
    }

    private void Bindstu()
    {
        string sql = "select * from student";
        DataTable dt = Class1.Gettable(sql);
        this.GridView1.DataSource = dt ;
        this.GridView1.DataBind();
    }

设计界面,将sno,sname,等字段,通过设置Gridview1的,boundfield的datafield属性,将数据绑定。

 

4.在grivdview1绑定数据加一列hyperlinkfield,headtext及text名为“删除”;并将sno值到Handler.aspx这个网页。

具体为设置hyperlinfield的datanavigatevulfieles 为sno,datavavigateurlformats属性为Handler.ashx?sno={0}。

 5.在Handler.ashx中添加如下代码,调用class1的Dele方法:

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;

public class Handler : IHttpHandler {
   
    public void ProcessRequest (HttpContext context)
    {
        string i = context.Request.QueryString["sno"];  //定义字符串,接收Default网页传值;    

        try
          bool ids;
            ids = Class1.Dele(i);//调用删除方法;
            if (ids)
            {

                context.Response.Redirect("Default.aspx");//成功后,将网页重新定位到default 网页;            
        }
        catch(System.Exception ee)          
        {
            throw ee;
           
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}

转自:http://blog.sina.com.cn/s/blog_60da4e1d0100f8ga.html

posted @ 2011-08-19 11:29  xgcdd  阅读(542)  评论(0编辑  收藏  举报