博文

ASP.NET Web 应用程序中的页和应用程序上下文(2006-06-07 14:37:00)

摘要:在 Web 应用程序运行时,ASP.NET 将维护有关当前应用程序、每个用户会话、当前 HTTP 请求、请求的页等方面的信息。ASP.NET 包含一系列类,用于封装这些上下文信息。 ASP.NET 使这些类的实例可用作您可以从代码访问的内部对象。下表列出这些内部对象,同时也列出生成这些实例的类。   对象名 说明 ASP.NET 类 Response 提供对当前页的输出流的访问。您可以使用此类将文本插入页中、编写 Cookie,等等。有关详细信息,请参见 System.Web.UI.Page.Response 属性。 HttpResponse Request 提供对当前页请求的访问,其中包括请求标题、Cookie、客户端证书、查询字符串等。您可以使用此类读取浏览器已经发送的内容。有关详细信息,请参见 System.Web.UI.Page.Request 属性。 HttpRequest Context 提供对整个当前上下文(包括请求对象)的访问。您可以使用此类共享页之间的信息。有关详细信息,请参见 System.Web.UI.Page.Context 属性。 HttpContext Server 公开可以用于在页之间传输控件的实用工具方法,获取有关最新错误的信息,对 HTML 文本进行编码和解码,等等。有关详细信息,请参见 System.Web.UI.Page.Server 属性。 HttpServerUtility Application 提供对所有会话的应用程序范围的方法和事件的访问。还提供对可用于存储信息的应用程序范围的缓存的访问。有关详细信息,请参见 ASP.NET 应用程序状态。 HttpApplicationState Session 为当前用户会话提供信息。还提供对可用于存储信息的会话范围的缓存的访问,以及控制如何管理会话的方法。有关详细信息,请参见 ASP.NET 会话状态。 HttpSessionState Trace 提供在 HTTP 页输出中显示系统和自定义跟踪诊断消息的方法。有关详细信息,请参见 ASP.NET 跟踪。 ......

阅读全文(2238) | 评论:0

ASP.NET 页生命周期概述(2006-06-07 14:34:00)

摘要:ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。了解页的生命周期非常重要,这样就能在合适的生命周期阶段编写代码,以达到预期效果。此外,如果开发自定义控件,则必须熟悉页生命周期,从而正确地初始化控件,使用视图状态数据填充控件属性以及运行所有控件行为逻辑。(控件的生命周期基于页的生命周期,但是页引发的控件事件比单独的 ASP.NET 页中可用的事件多。) 常规页生命周期阶段 一般来说,页要经历下表概述的各个阶段。除了页生命周期阶段以外,还有在请求前后出现的应用程序阶段,但是这些阶段并不特定于页。有关更多信息,请参见 ASP.NET 应用程序生命周期概述。   阶段 说明 页请求 页请求发生在页生命周期开始之前。用户请求页时,ASP.NET 将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。 开始 在开始阶段,将设置页属性,如 Request 和 Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置 IsPostBack 属性。此外,在开始阶段期间,还将设置页的 UICulture 属性。 页初始化 页初始化期间,可以使用页中的控件,并将设置每个控件的 UniqueID 属性。此外,任何主题都将应用于页。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。 加载 加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。 验证 在验证期间,将调用所有验证程序控件的 Validate 方法,此方法将设置各个验证程序控件和页的 IsValid 属性。 回发事件处理 如果请求是回发请求,则将调用所有事件处理程序。 呈现 在呈现期间,视图状态将被保存到页,然后页将调用每个控件,以将其呈现的输出提供给页的 Response 属性的 OutputStream。 卸载 完全呈现页、将页发送至客户端并准备丢弃时,将调用卸载。此时,将卸载页属性(如 Response 和......

阅读全文(2054) | 评论:0

ASP.NET 应用程序生命周期概述(2006-06-07 14:33:00)

摘要:本主题概述应用程序生命周期,列出重要的生命周期事件,并描述如何编写适合应用程序生命周期的代码。在 ASP.NET 中,若要对 ASP.NET 应用程序进行初始化并使它处理请求,必须执行一些处理步骤。此外,ASP.NET 只是对浏览器发出的请求进行处理的 Web 服务器结构的一部分。了解应用程序生命周期非常重要,这样才能在适当的生命周期阶段编写代码,达到预期的效果。 应用程序生命周期概述 下表描述了 ASP.NET 应用程序生命周期的各个阶段。   阶段 说明 用户从 Web 服务器请求应用程序资源。 ASP.NET 应用程序的生命周期以浏览器向 Web 服务器(对于 ASP.NET 应用程序,通常为 IIS)发送请求为起点。ASP.NET 是 Web 服务器下的 ISAPI 扩展。Web 服务器接收到请求时,会对所请求的文件的文件扩展名进行检查,确定应由哪个 ISAPI 扩展处理该请求,然后将该请求传递给合适的 ISAPI 扩展。ASP.NET 处理已映射到其上的文件扩展名,如 .aspx、.ascx、.ashx 和 .asmx。 注意 如果文件扩展名尚未映射到 ASP.NET,则 ASP.NET 将不会接收该请求。对于使用 ASP.NET 身份验证的应用程序,理解这一点非常重要。例如,由于 .htm 文件通常没有映射到 ASP.NET,因此 ASP.NET 将不会对 .htm 文件请求执行身份验证或授权检查。因此,即使文件仅包含静态内容,如果希望 ASP.NET 检查身份验证,也应使用映射到 ASP.NET 的文件扩展名创建该文件,如采用文件扩展名 .aspx。 注意 如果要创建服务于特定文件扩展名的自定义处理程序,必须在 IIS 中将该扩展名映射到 ASP.NET,还必须在应用程序的 Web.config 文件中注册该处理程序。有关更多信息,请参见 HTTP 处理程序介绍。 ASP.NET 接收对应用程序的第一个请求。 当 ASP.NET 接收到对应用程序中任何资源的第一个请求时,名为 ApplicationManager 的类会创建一个应用程序域。应用程序域为全局变量提供应用程序隔离,并允许单独卸载每个应用程序。在应用程序域中......

阅读全文(2632) | 评论:0

system.web 元素(ASP.NET 设置架构)(2006-06-07 14:29:00)

摘要:system.web 元素(ASP.NET 设置架构)  指定 ASP.NET 配置节的根元素,并包含用于配置 ASP.NET Web 应用程序和控制应用程序行为的配置元素。configuration 元素(常规设置架构)
  system.web 元素(ASP.NET 设置架构)
<system.web> <anonymousIdentification> <authentication> <authorization> <browserCaps> <caching> <clientTarget> <compilation> <customErrors> <deployment> <deviceFilters> <globalization> <healthMonitoring> <hostingEnvironment> <httpCookies> <httpHandlers> <httpModules> <httpRuntime> <identity> <machineKey> <membership> <mobileControls> <pages> <processModel> <profile> <roleManager> <securityPolicy> <sessionPageState> <sessionState> <siteMap> <trace> <trust> <urlMapp......

阅读全文(2251) | 评论:0

configuration 元素(常规设置架构)(2006-06-07 14:28:00)

摘要:configuration 元素(常规设置架构)  公共语言运行库和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。 <configuration xmlns="schema URL"> <!-- configuration settings --> </configuration> var ExpCollDivStr=ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl03381919a,"; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl03img,"; 属性和元素
下面几部分描述了属性、子元素和父元素。 属性   属性 说明 xmlns 可选的 String 属性。 指定用于验证配置文件的 XML 架构的 URL。如果未设置此属性,则无法在 Microsoft Visual Studio 中使用 F1 帮助打开配置元素的主题。 ASP.NET 2.0 版的默认值为 "http://schemas.microsoft.com/.NetConfiguration/v2.0"。 子元素   元素 说明 configSections 指定配置节和命名空间声明。 appSettings 包含自定义应用程序设置,如文件路径、XML Web services URL 或存储在应用程序的 .ini 文件中的任何信息。 connectionStrings 为 ASP.NET 应用程序和功能指定数据库连接字符串(名称/值对的形式)的集合。 location 指定应用子配置设置的资源。此元素也锁定配置设置,以防止子配置文件重写这些设置。 ASP.NET 设置架构 指定 ASP.NET 配置架构中的所有元素。 启动设置架构 指定......

阅读全文(2849) | 评论:0

pages 元素(ASP.NET 设置架构)(2006-06-07 14:27:00)

摘要: pages 元素(ASP.NET 设置架构) <pages    
   buffer="[True|False]"
   enableEventValidation="[True|False]"
   enableSessionState="[True|False|ReadOnly]"
   enableViewState="[True|False]"
   enableViewStateMac="[True|False]"
   smartNavigation="[True|False]"
   autoEventWireup="[True|False]"
   pageBaseType="typename, assembly"
   userControlBaseType="typename"
   validateRequest="[True|False]"
   masterPageFile="file path"
   theme="string"
   styleSheetTheme="string"
   maxPageStateFieldLength="number"
   compilationMode="[Always|Auto|Never]"
   pageParserFilterType="string"
   viewStateEncryptionMode="[Always|Auto|Never]"
   maintainScrollPositionOnPostBack="[True|False]"
   asyncTimeout="number"
>
&nb......

阅读全文(4262) | 评论:0

Atlas 实现机制浅析(2006-06-07 14:13:00)

摘要:1.3 局部重绘模式的服务器端响应 在第一小节中,我们曾提到 ScriptManager 在重载的 Web.UI.Control.OnInit 事件中,会根据页面请求中 delta = true 是否存在,判断当前页面是否处于局部重绘模式中,并接管 LoadComplete 时间来处理此模式。相应的 OnInit 事件还会在局部重绘模式中,主动接管 Page.Render 方法的逻辑来替换完整页面刷新。
1protectedoverridevoidOnInit(EventArgse)
2{
3//当不处于设计模式,且控件属于某个页面时
4if(!DesignMode&&(_page!=null))
5{
6//判断页面中是否只有一个ScriptManager实例,否则抛出异常
7
8//如果页面请求中delta属性为true则处于重绘模式
9if(_page.Request.Headers["delta"]=="true")
10{
11_inPartialRenderingMode=true;//处于重绘模式
12_page.TraceEnabled=false;//关闭trace支持
13
14//根据每个UpdatePanel的重绘状态,返回实际的重绘结果
15_page.LoadComplete+=newEventHandler(this.OnPageLoadComplete);
16}
17
18//完成前面提到的Altas.js和XML脚本的输出
19_page.PreRenderComplete+=newEventHandler(this.OnPagePreRenderComplete);
20}
21}
22
23privatevoidOnPagePreRenderComplete(objectsender,EventArgse)
24{
25//是否在局部重绘模式中
26if(_inPartialRenderingMode)
27{
28//接管Page的Render方法
29Page.SetRenderMethodDelegate(newRenderMe......

阅读全文(2530) | 评论:0

解决gridview的excel导出问题(2006-06-07 14:11:00)

摘要:以前datagrid导出为excel,只需如下代码:
Response.Clear();
Response.AddHeader("content-disposition","attachment;filename=FileName.xls");

Response.Charset="";

//IfyouwanttheoptiontoopentheExcelfilewithoutsavingthan

//commentoutthelinebelow

//Response.Cache.SetCacheability(HttpCacheability.NoCache);

Response.ContentType="application/vnd.xls";

System.IO.StringWriterstringWrite=newSystem.IO.StringWriter();

System.Web.UI.HtmlTextWriterhtmlWrite=newHtmlTextWriter(stringWrite);

gvMaster.RenderControl(htmlWrite);

Response.Write(stringWrite.ToString());

Response.End(); 现在改成gridview后,以上代码会提示异常错误,经网上搜索,解决方案如下
1、在导出界面中重载
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
2、在web.config中修改

3、现在可以正常导出了。
......

阅读全文(2982) | 评论:0

C#实现选择排序(2006-06-07 14:10:00)

摘要:usingSystem;
namespaceSelectionSorter
{
publicclassSelectionSorter
{
privateintmin;
publicvoidSort(int[]list)
{
for(inti=0;i<list.Length-1;i++)
{
min=i;
for(intj=i+1;j<list.Length;j++)
{
if(list[j]<list[min])
min=j;
}
intt=list[min];
list[min]=list[i];
list[i]=t;
}


}
}
publicclassMainClass
{
publicstaticvoidMain()
{
int[]iArrary=newint[]{1,5,3,6,10,55,9,2,87,12<SPAN style="COLOR: #000000"......

阅读全文(2460) | 评论:0

C#实现插入排序(2006-06-07 14:10:00)

摘要:usingSystem;
namespaceInsertionSorter
{
publicclassInsertionSorter
{
publicvoidSort(int[]list)
{
for(inti=1;i<list.Length;i++)
{
intt=list[i];
intj=i;
while((j>0)&&(list[j-1]>t))
{
list[j]=list[j-1];
--j;
}
list[j]=t;
}
}
}
publicclassMainClass
{
publicstaticvoidMain()
{
int[]iArrary=newint[]{1,13,3,6,10,55,98,2,87,12,34,75,33,47};
InsertionSorterii=newInsertionSorter();
ii.Sort(iArrary);
for(intm=0;m<iArrary.Length;m++)
Console.Write("{0}",iArrary[m]);
Console.WriteLine();
}
}
}
......

阅读全文(2408) | 评论:0