excel 2003和2007打开后灰色,没有表格的解决方法
2010-05-27 12:15
507 查看
现在从对ASP.NET页面的执行顺序开始,体会一下B/S结构的程序的特点,ASP.NET页面的执行顺序说明:Page_Init(页面初始化引发的事件)——>Page_Load(加载页面时引发的事件)——>Control Event(服务器控件引发的事件)——>Page_UnLoad(页面从内存中卸载时引发的事件)
Page_Init和Page_UnLoad不常用,但是这里还是要说明一下。Page_Init和Page_Load事件区别在于,只有后者才能完全加载控件,绑定数据,虽然你可以在Page_Init中访问控件,但是其viewstate都不会被加载,所以此时控件中只拥有默认值。
这里说到了viewstate,我们先来做一个大致的了解——其实在ASP.NET中有两个viewstate.一个是控件本身的,用来维护控件自己的一些状态,比如说某个空间有变色的功能,它的viewstate就维护这个功能,这个 viewstate是不能被用户访问的。相信自己写过控件的朋友都会有这样的感觉,自己写控件当然也要用自己的一个viewstate来维护这个控件的状态;而另外一个viewstate,是用户使用的,这个viewstate和Session几乎一模一样,必须要先对其进行定义,才能使用。
每当点击ASP.NET的Web网页上的Button、LinkButton或ImageButton等控件时,表单就会被发送到服务器上。如果某些控件的AutoPostBack属性被设置为true,那么当该控件的状态被改变后,也会使表单会发送回服务器。?(AutoPostBack属性,它只有两个bool值,true/false.如果这个属性被设置成false,那么点击后就不会立刻将变化传给服务器处理,也就不会有该控件的 SelectedIndexChanged事件。)
每次当表单被发送回服务器,就会被重新加载,启动Page_Load事件,执行Page_Load事件处理程序中的所有代码(注意,是每次都会执行!)。
很显然把网页的初始化代码放在这里是最合适不过。我们经常会希望在每次加载网页时执行一些代码,如一些控件的数据绑定。
当我们希望只有在网页第一次加载时执行另一些代码(基本上都是数据的默认绑定),甚至希望一些代码在除首次加载外的每次加载时执行。那么我们可以利用 IsPostBack特性来完成这一功能。在网页第一次加载时,该属性的值是false.如果网页因回送而被重新加载,IsPostBack属性的值就会被设置为true.在ASP.NET应用程序中,如果需要在页面第一次显示时执行一些初始化操作,必须判断IsPostBack属性!
在ASP.NET使用Page.IsPostback,那么就可以避免往返行程上的额外工作:如果处理服务器控件回发,通常需要在第一次请求页时执行代码,该代码不同于激发事件时用于往返行程的代码。如果检查?Page.IsPostBack?属性,则代码可按条件执行,具体取决于是否有对页的初始请求或对服务器控件事件的响应。这样做似乎很明显,但实际上可以忽略此项检查而不更改页的行为。该属性用的好坏,直接关系到你程序运行是否按照你最初的意愿,也关系到整个页面的效率。因为,如果每次都会给控件绑定数据,不管你是第一次访问,还是提交了数据以后,那么这个页面程序的效率可想而知。
一个B/S结构的页面每一次提交,它都会重新从头到尾执行一次。而C/S结构的程序就不会这样,这是和C/S结构的程序最大的区别!?其实,得不到控件的数据,都是因为这个原因
Page_Init和Page_UnLoad不常用,但是这里还是要说明一下。Page_Init和Page_Load事件区别在于,只有后者才能完全加载控件,绑定数据,虽然你可以在Page_Init中访问控件,但是其viewstate都不会被加载,所以此时控件中只拥有默认值。
这里说到了viewstate,我们先来做一个大致的了解——其实在ASP.NET中有两个viewstate.一个是控件本身的,用来维护控件自己的一些状态,比如说某个空间有变色的功能,它的viewstate就维护这个功能,这个 viewstate是不能被用户访问的。相信自己写过控件的朋友都会有这样的感觉,自己写控件当然也要用自己的一个viewstate来维护这个控件的状态;而另外一个viewstate,是用户使用的,这个viewstate和Session几乎一模一样,必须要先对其进行定义,才能使用。
每当点击ASP.NET的Web网页上的Button、LinkButton或ImageButton等控件时,表单就会被发送到服务器上。如果某些控件的AutoPostBack属性被设置为true,那么当该控件的状态被改变后,也会使表单会发送回服务器。?(AutoPostBack属性,它只有两个bool值,true/false.如果这个属性被设置成false,那么点击后就不会立刻将变化传给服务器处理,也就不会有该控件的 SelectedIndexChanged事件。)
每次当表单被发送回服务器,就会被重新加载,启动Page_Load事件,执行Page_Load事件处理程序中的所有代码(注意,是每次都会执行!)。
很显然把网页的初始化代码放在这里是最合适不过。我们经常会希望在每次加载网页时执行一些代码,如一些控件的数据绑定。
当我们希望只有在网页第一次加载时执行另一些代码(基本上都是数据的默认绑定),甚至希望一些代码在除首次加载外的每次加载时执行。那么我们可以利用 IsPostBack特性来完成这一功能。在网页第一次加载时,该属性的值是false.如果网页因回送而被重新加载,IsPostBack属性的值就会被设置为true.在ASP.NET应用程序中,如果需要在页面第一次显示时执行一些初始化操作,必须判断IsPostBack属性!
在ASP.NET使用Page.IsPostback,那么就可以避免往返行程上的额外工作:如果处理服务器控件回发,通常需要在第一次请求页时执行代码,该代码不同于激发事件时用于往返行程的代码。如果检查?Page.IsPostBack?属性,则代码可按条件执行,具体取决于是否有对页的初始请求或对服务器控件事件的响应。这样做似乎很明显,但实际上可以忽略此项检查而不更改页的行为。该属性用的好坏,直接关系到你程序运行是否按照你最初的意愿,也关系到整个页面的效率。因为,如果每次都会给控件绑定数据,不管你是第一次访问,还是提交了数据以后,那么这个页面程序的效率可想而知。
一个B/S结构的页面每一次提交,它都会重新从头到尾执行一次。而C/S结构的程序就不会这样,这是和C/S结构的程序最大的区别!?其实,得不到控件的数据,都是因为这个原因
相关文章推荐
- Win10系统无法打开Office 2007及Excel词典文件丢失的故障原因及解决方法
- Office 2007 打开 C# VS2005 导出的Excel时报错:单元格数据太大 Office 2003打开正常 的解决办法
- java中用poi处理Excel表格之读取(2003和2007通用方法)
- java中用poi处理Excel表格之写入(2003和2007通用方法)
- .xlsx文件总是默认用2007 Microsoft Office component 打开,且无法更改用EXCEL打开的解决方法
- powerpoint、excel 2007与visual studio 2008 起冲突,打开时显示安装的问题解决方法
- XP、win7下Excel 2007多窗口打开Excel的解决方法
- EXCEL打开CSV文件乱码的解决方法
- windows 2003 远程桌面没有声音解决方法(转)
- 【转】打开多个Excel切换会卡机问题解决方法
- csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法
- 右击新建没有word、excel选项的解决方法
- delphi7在windows server 2003企业版上不能打开项目的选项(Options)窗口的解决方法
- 导出excel解决“您尝试打开的文件格式与文件扩展名指定的格式不一致,打开文件前请验证文件没有损坏且来源可信”
- 英文版Excel 2007打开含中文的csv文件乱码如何解决
- 解决win8下chrome浏览器打开提示没有注册类的方法
- Hyper-V虚拟机启动时报“账户没有足够的权限打开VHD文件”原因及解决方法
- Office 2003 打开太慢的9种解决方法
- SharePoint 2010 RMS Word 2010 您没有权限打开文档 解决方法
- office2007 打开Excel 提示 工作表中的公式包含一个或多个无效引用的解决方法