首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

“System.Web.UI.Page.Response.get”要求对象引用解决方案

2012-01-21 
“System.Web.UI.Page.Response.get”要求对象引用下面的代码本来是放在页面cs文件中的,我新建了一个类文件

“System.Web.UI.Page.Response.get”要求对象引用
下面的代码本来是放在页面cs文件中的,我新建了一个类文件完成下面的功能,可是老是报错:
编译器错误信息:   CS0120:   非静态的字段、方法或属性“System.Web.UI.Page.Response.get”要求对象引用
  在这里过不去     resp   =   System.Web.UI.Page.Response;
我把原来能正常运行页面中的所有using全拷过来了.
怎么解决此问题??

------------------------------------                      
                        HttpResponse   resp;
                        resp   =   Page.Response;
                        resp.ContentEncoding   =   System.Text.Encoding.GetEncoding( "GB2312 ");
                        resp.AppendHeader( "Content-Disposition ",   "attachment; "+filename);
                        string   colHeaders   =   " ",   ls_item   =   " ";
                        int   i   =   0;

                        //定义表对象与行对像,同时用DataSet对其值进行初始化  
                        DataTable   dt   =   ds.Tables[0];
                        DataRow[]   myRow   =   dt.Select( " ");
                        //   typeid== "1 "时导出为EXCEL格式文件;typeid== "2 "时导出为XML格式文件  
                        if   (typeid   ==   "1 ")
                        {
                                //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符  
                                for   (i   =   0;   i   <   dt.Columns.Count   -   1;   i++)
                                        colHeaders   +=   dt.Columns[i].Caption.ToString()   +   "\t ";
                                colHeaders   +=   dt.Columns[i].Caption.ToString()   +   "\n ";
                                //向HTTP输出流中写入取得的数据信息  
                                resp.Write(colHeaders);
                                //逐行处理数据      
                                foreach   (DataRow   row   in   myRow)
                                {


                                        //在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n  
                                        for   (i   =   0;   i   <   row.Table.Columns.Count   -   1;   i++)
                                                ls_item   +=   row[i].ToString()   +   "\t ";
                                        ls_item   +=   row[i].ToString()   +   "\n ";
                                        //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据          
                                        resp.Write(ls_item);
                                        ls_item   =   " ";
                                }
                        }
                        else
                        {
                                if   (typeid   ==   "2 ")
                                {
                                        //从DataSet中直接导出XML数据并且写到HTTP输出流中  
                                        resp.Write(ds.GetXml());
                                }
                        }
                        //写缓冲区中的数据到HTTP头文件中  
                        resp.End();  


[解决办法]
非.aspx/.aspx.cs 中引用Response,Request等使用类请使用,

HttpResponse resp = System.Web.HttpContext.Current.Response;
HttpRequest req = System.Web.HttpContext.Current.Request;
HttpServerUtility server = System.Web.HttpContext.Current.Server;
HttpSessionState session = System.Web.HttpContext.Current.Session;
// ....

所有这些使用类实例都作为Page中对应的实例属性公开,

热点排行