﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-Beyond the dream——飛雪飄寒</title><link>http://www.cnblogs.com/dreamof/</link><description>————磨難不過是人生鍵盤的回車。。。。。。</description><language>zh-cn</language><lastBuildDate>Mon, 07 Jul 2008 02:24:12 GMT</lastBuildDate><pubDate>Mon, 07 Jul 2008 02:24:12 GMT</pubDate><ttl>60</ttl><item><title>休闲小游戏（看看你能过几关）</title><link>http://www.cnblogs.com/dreamof/archive/2008/07/02/1233918.html</link><dc:creator>飛雪飄寒</dc:creator><author>飛雪飄寒</author><pubDate>Wed, 02 Jul 2008 04:57:00 GMT</pubDate><guid>http://www.cnblogs.com/dreamof/archive/2008/07/02/1233918.html</guid><wfw:comment>http://www.cnblogs.com/dreamof/comments/1233918.html</wfw:comment><comments>http://www.cnblogs.com/dreamof/archive/2008/07/02/1233918.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/dreamof/comments/commentRss/1233918.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/dreamof/services/trackbacks/1233918.html</trackback:ping><description><![CDATA[摘要:       工作之余好好娱乐一下吧，无限竟技之完美停车，看看你能过几关？&nbsp;&nbsp;<a href='http://www.cnblogs.com/dreamof/archive/2008/07/02/1233918.html'>阅读全文</a><img src ="http://www.cnblogs.com/dreamof/aggbug/1233918.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37557/" target="_blank">[新闻]Ask完成收购Dictionary 跃居全球第9大网站</a>]]></description></item><item><title>.net导出word、excel等文件操作类</title><link>http://www.cnblogs.com/dreamof/archive/2008/06/24/1229069.html</link><dc:creator>飛雪飄寒</dc:creator><author>飛雪飄寒</author><pubDate>Tue, 24 Jun 2008 08:52:00 GMT</pubDate><guid>http://www.cnblogs.com/dreamof/archive/2008/06/24/1229069.html</guid><wfw:comment>http://www.cnblogs.com/dreamof/comments/1229069.html</wfw:comment><comments>http://www.cnblogs.com/dreamof/archive/2008/06/24/1229069.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/dreamof/comments/commentRss/1229069.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/dreamof/services/trackbacks/1229069.html</trackback:ping><description><![CDATA[摘要:     在做.NET项目时,经常会遇到要导出文件的问题,如将DataGrid中的数据导出到word、excel文件等。<br><br>   下面是自己写的一个.net导出文件操作类，现把代码贴出来，以供参考，如有不当之处望予指正！<br> <br><br>        &nbsp;&nbsp;<a href='http://www.cnblogs.com/dreamof/archive/2008/06/24/1229069.html'>阅读全文</a><img src ="http://www.cnblogs.com/dreamof/aggbug/1229069.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37556/" target="_blank">[新闻]Google Adplanner：究竟有多强大</a>]]></description></item><item><title>.net调用OWC生成报表统计图总结</title><link>http://www.cnblogs.com/dreamof/archive/2008/06/19/1226227.html</link><dc:creator>飛雪飄寒</dc:creator><author>飛雪飄寒</author><pubDate>Thu, 19 Jun 2008 14:43:00 GMT</pubDate><guid>http://www.cnblogs.com/dreamof/archive/2008/06/19/1226227.html</guid><wfw:comment>http://www.cnblogs.com/dreamof/comments/1226227.html</wfw:comment><comments>http://www.cnblogs.com/dreamof/archive/2008/06/19/1226227.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.cnblogs.com/dreamof/comments/commentRss/1226227.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/dreamof/services/trackbacks/1226227.html</trackback:ping><description><![CDATA[摘要:     这几天在做项目时要对数据进行统计分析，所以必须生成一些统计图(如柱形图、饼图、曲线图等)，于是我首先想到了微软的owc11控件，owc11控件是microsoft office 图表控件（owc10为ofiiceXP的组件、owc11为office2003的组件，组件的路径为C:\Program Files\Common Files\Microsoft Shared\Web Components\11\owc11，帮助文件的路径为C:\Program Files\Common Files\Microsoft Shared\Web Components\11\2052），调用它可以生成三维图、柱状图、饼状图、趋势图和误差图等。<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/dreamof/archive/2008/06/19/1226227.html'>阅读全文</a><img src ="http://www.cnblogs.com/dreamof/aggbug/1226227.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37555/" target="_blank">[新闻]微软步入后盖茨时代 鲍尔默应作10件大事</a>]]></description></item><item><title>.net常用函数集锦</title><link>http://www.cnblogs.com/dreamof/archive/2008/06/17/1224113.html</link><dc:creator>飛雪飄寒</dc:creator><author>飛雪飄寒</author><pubDate>Tue, 17 Jun 2008 08:37:00 GMT</pubDate><guid>http://www.cnblogs.com/dreamof/archive/2008/06/17/1224113.html</guid><wfw:comment>http://www.cnblogs.com/dreamof/comments/1224113.html</wfw:comment><comments>http://www.cnblogs.com/dreamof/archive/2008/06/17/1224113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/dreamof/comments/commentRss/1224113.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/dreamof/services/trackbacks/1224113.html</trackback:ping><description><![CDATA[摘要:     本文主要对.net常用函数的功能及使用技巧进行了总结！&nbsp;&nbsp;<a href='http://www.cnblogs.com/dreamof/archive/2008/06/17/1224113.html'>阅读全文</a><img src ="http://www.cnblogs.com/dreamof/aggbug/1224113.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37554/" target="_blank">[新闻]说说麦田的博客过时论</a>]]></description></item><item><title>.net实现导出Word、Excel格式文件</title><link>http://www.cnblogs.com/dreamof/archive/2008/06/13/1219437.html</link><dc:creator>飛雪飄寒</dc:creator><author>飛雪飄寒</author><pubDate>Fri, 13 Jun 2008 08:31:00 GMT</pubDate><guid>http://www.cnblogs.com/dreamof/archive/2008/06/13/1219437.html</guid><wfw:comment>http://www.cnblogs.com/dreamof/comments/1219437.html</wfw:comment><comments>http://www.cnblogs.com/dreamof/archive/2008/06/13/1219437.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/dreamof/comments/commentRss/1219437.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/dreamof/services/trackbacks/1219437.html</trackback:ping><description><![CDATA[摘要:     在做.NET项目时,会经常遇到要导出文件的问题,如将DataGrid中的数据导出到excel、word文件等,经常使用的是Office中的OWC组件,这个组件提供的功能很强大,在一般的项目中都可以满足当前的需要.但是这个功能强大的组件使用起来却不是很方便,不但有版本的问题,而且代码量也相对比较大.现在简单介绍一下利用Respone对象和相关的IO实现导出excel/word等文件的方法。<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/dreamof/archive/2008/06/13/1219437.html'>阅读全文</a><img src ="http://www.cnblogs.com/dreamof/aggbug/1219437.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37549/" target="_blank">[新闻]阿里巴巴确立未来十年战略规划 修改自身定位</a>]]></description></item><item><title>datagrid多层表头及datagrid列动态统计功能的实现</title><link>http://www.cnblogs.com/dreamof/archive/2008/06/12/1218525.html</link><dc:creator>飛雪飄寒</dc:creator><author>飛雪飄寒</author><pubDate>Thu, 12 Jun 2008 09:25:00 GMT</pubDate><guid>http://www.cnblogs.com/dreamof/archive/2008/06/12/1218525.html</guid><wfw:comment>http://www.cnblogs.com/dreamof/comments/1218525.html</wfw:comment><comments>http://www.cnblogs.com/dreamof/archive/2008/06/12/1218525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/dreamof/comments/commentRss/1218525.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/dreamof/services/trackbacks/1218525.html</trackback:ping><description><![CDATA[摘要: 主要介绍了datagrid多层表头及datagrid列动态统计功能的实现,希望能给大家带来帮助！&nbsp;&nbsp;<a href='http://www.cnblogs.com/dreamof/archive/2008/06/12/1218525.html'>阅读全文</a><img src ="http://www.cnblogs.com/dreamof/aggbug/1218525.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37548/" target="_blank">[新闻]微软高管：Wii用户最终会成为Xbox 360用户</a>]]></description></item><item><title>60个经典的电脑使用技巧</title><link>http://www.cnblogs.com/dreamof/archive/2008/06/05/1214494.html</link><dc:creator>飛雪飄寒</dc:creator><author>飛雪飄寒</author><pubDate>Thu, 05 Jun 2008 07:15:00 GMT</pubDate><guid>http://www.cnblogs.com/dreamof/archive/2008/06/05/1214494.html</guid><wfw:comment>http://www.cnblogs.com/dreamof/comments/1214494.html</wfw:comment><comments>http://www.cnblogs.com/dreamof/archive/2008/06/05/1214494.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/dreamof/comments/commentRss/1214494.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/dreamof/services/trackbacks/1214494.html</trackback:ping><description><![CDATA[摘要: 60个经典的电脑使用技巧，肯定会给大家带来帮助的！&nbsp;&nbsp;<a href='http://www.cnblogs.com/dreamof/archive/2008/06/05/1214494.html'>阅读全文</a><img src ="http://www.cnblogs.com/dreamof/aggbug/1214494.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37547/" target="_blank">[新闻]遵守YouTube案裁定 谷歌将陷入隐私指控深渊</a>]]></description></item><item><title>.Net中“无效的CurrentPageIndex值。它必须大于等于0且小于PageCount”错误的解决方法</title><link>http://www.cnblogs.com/dreamof/archive/2008/05/30/1210566.html</link><dc:creator>飛雪飄寒</dc:creator><author>飛雪飄寒</author><pubDate>Fri, 30 May 2008 03:21:00 GMT</pubDate><guid>http://www.cnblogs.com/dreamof/archive/2008/05/30/1210566.html</guid><wfw:comment>http://www.cnblogs.com/dreamof/comments/1210566.html</wfw:comment><comments>http://www.cnblogs.com/dreamof/archive/2008/05/30/1210566.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/dreamof/comments/commentRss/1210566.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/dreamof/services/trackbacks/1210566.html</trackback:ping><description><![CDATA[<div class="postText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;前几天在公司的一个项目中，用到了DataGrid的绑定及分页功能，比如有10页，当不在首页(如第2页)根据条件进行筛选并查不到结果时往往会出现&#8220;<font color="#ff0000">无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。</font>&#8221;的错误；之前在DataGrid自带的删除功能，并且实现分页时，每当删除一条记录后要退回到前一页时，也出现了&#8220;<font color="#ff0000">无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。</font>&#8221;的错误。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;现本人将此错误的出现情况及解决方法进行了总结(个人方法仅供参与考，不当之处敬请指正)，具体如下：&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
情况一：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当在DataGrid自带的删除功能，并且实现分页时，每当删除一条记录后要退回到前一页时<br />
思路：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当删除数据库中数据并在数据绑定之前，判断是否需要翻页，以纠正CurrentPageIndex的错误。<br />
实现：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在DataGrid_Delete方法中，添加如下代码：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//正常删除数据库中的数据&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc0000">//判断<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( DataGrid1.Items.Count == 1 &amp;&amp; DataGrid1.CurrentPageIndex &gt; 0 )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGrid1.CurrentPageIndex--;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//重新绑定数据<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BindGrid();<br />
<br />
情况二：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可能我们没有使用DataGrid内建的删除方式，可能通过CheckBox使得每次可以删除多条记录。<br />
思路：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其实思路差不多，只不过要获取一次一共删除多少记录，并保存于一个变量中，然后将DataGrid1.Items.Count和其比较，正如上面的&#8220;<font color="#cc0000">DataGrid1.Items.Count == 1</font>&#8221;，这样就能判断是否需要翻页了。<br />
实现：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc0000">&nbsp;//获取删除记录的总数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;count = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach( DataGridItem item in DataGrid1.Items )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( item.ItemType == ListItemType.Item || item.ItemType&nbsp; == ListItemType.AlternatingItem )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CheckBox ckbox = item.FindControl(&#8220;CheckBox1&#8220; ) as CheckBox;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( ckbox != null &amp;&amp; ckbox.Checked )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++ count;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font><br />
<font color="#cc0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( count == DataGrid1.Items.Count &amp;&amp; DataGrid1.CurrentPageIndex &gt; 0 )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- DataGrid1.CurrentPageIndex;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font>&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//重新绑定数据<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BindGrid();<br />
<br />
情况三：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在我们的一个Page中，可能是根据某一条件进行筛选，然后再显示在DataGrid内。当DataGrid允许分页，也会出现类似的问题。即：当某一个条件筛选出的结果大于1页，并且我们浏览到第2，或更后面的页，然后我们改变筛选的参数，重新获取结果并填充DataGrid，那么该错误提示又将出现！<br />
<br />
思路：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在改变筛选条件，进行筛选之前，我们应该判断CurrentPageIndex是否为第一页，即CurrentPageIndex应该等于0。如果不是则将其设置为0。<br />
实现：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们用一个DropDownList来实现筛选，在SelectedIndexChanged事件处理函数中，我们原来是这么写的：<br />
private void lstProject_SelectedIndexChanged(object sender, System.EventArgs e)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowData( lstProject.SelectedValue );<br />
}<br />
现在应该改为：<br />
&nbsp;&nbsp;private void lstProject_SelectedIndexChanged(object sender, System.EventArgs e)<br />
&nbsp;&nbsp;{<br />
<font color="#cc0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( viewAllWorkItem.CurrentPageIndex &gt; 0 )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;viewAllWorkItem.CurrentPageIndex = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowData( lstProject.SelectedValue );<br />
&nbsp;&nbsp;}</div>
   <img src ="http://www.cnblogs.com/dreamof/aggbug/1210566.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37546/" target="_blank">[新闻]iPhone入华在即 中国手机产业生存面临考验</a>]]></description></item><item><title>浅析ASP.NET的Page.IsPostBack 属性</title><link>http://www.cnblogs.com/dreamof/archive/2008/04/30/1178171.html</link><dc:creator>飛雪飄寒</dc:creator><author>飛雪飄寒</author><pubDate>Wed, 30 Apr 2008 13:05:00 GMT</pubDate><guid>http://www.cnblogs.com/dreamof/archive/2008/04/30/1178171.html</guid><wfw:comment>http://www.cnblogs.com/dreamof/comments/1178171.html</wfw:comment><comments>http://www.cnblogs.com/dreamof/archive/2008/04/30/1178171.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/dreamof/comments/commentRss/1178171.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/dreamof/services/trackbacks/1178171.html</trackback:ping><description><![CDATA[现在从对ASP.NET页面的执行顺序开始，体会一下B/S结构的程序的特点，下图是ASP.NET页面的执行顺序说明：<br />
<br />
　　Page_Init（页面初始化引发的事件）——&gt;Page_Load（加载页面时引发的事件）——&gt;Control&nbsp;&nbsp; Event（服务器控件引发的事件）——&gt;Page_UnLoad（页面从内存中卸载时引发的事件）<br />
<br />
　　Page_Init和Page_UnLoad不常用，但是这里还是要说明一下。Page_Init和Page_Load事件区别在于，只有后者才能完全加载控件，绑定数据，虽然你可以在Page_Init中访问控件，但是其viewstate都不会被加载，所以此时控件中只拥有默认值。<br />
　　这里说到了viewstate，我们先来做一个大致的了解——其实在ASP.NET中有两个viewstate。一个是控件本身的，用来维护控件自己的一些状态，比如说某个空间有变色的功能，它的viewstate就维护这个功能，这个viewstate是不能被用户访问的。相信自己写过控件的朋友都会有这样的感觉，自己写控件当然也要用自己的一个viewstate来维护这个控件的状态；而另外一个viewstate，是用户使用的，这个viewstate和Session几乎一模一样，必须要先对其进行定义，才能使用。<br />
<br />
　　每当点击ASP.NET的Web网页上的Button、LinkButton或ImageButton等控件时，表单就会被发送到服务器上。如果某些控件的AutoPostBack属性被设置为true，那么当该控件的状态被改变后，也会使表单会发送回服务器。?（AutoPostBack属性，它只有两个bool值，true/false。如果这个属性被设置成false，那么点击后就不会立刻将变化传给服务器处理，也就不会有该控件的SelectedIndexChanged事件。）<br />
　　每次当表单被发送回服务器，就会被重新加载，启动Page_Load事件，执行Page_Load事件处理程序中的所有代码（注意，是每次都会执行！）。<br />
很显然把网页的初始化代码放在这里是最合适不过。我们经常会希望在每次加载网页时执行一些代码，如一些控件的数据绑定。<br />
<font size="2">　当我们希望只有在网页第一次加载时执行另一些代码（基本上都是数据的默认绑定），甚至希望一些代码在除首次加载外的每次加载时执行。那么我们可以利用IsPostBack特性来完成这一功能。在网页第一次加载时，该属性的值是false。如果网页因回送而被重新加载，IsPostBack属性的值就会被设置为true。</font>
<p><font size="2">在ASP.NET应用程序中，如果需要在页面第一次显示时执行一些初始化操作，必须判断IsPostBack属性！<br />
<br />
　　在ASP.NET使用Page.IsPostback，那么就可以避免往返行程上的额外工作：如果处理服务器控件回发，通常需要在第一次请求页时执行代码，该代码不同于激发事件时用于往返行程的代码。如果检查?Page.IsPostBack?属性，则代码可按条件执行，具体取决于是否有对页的初始请求或对服务器控件事件的响应。这样做似乎很明显，但实际上可以忽略此项检查而不更改页的行为。该属性用的好坏，直接关系到你程序运行是否按照你最初的意愿，也关系到整个页面的效率。因为，如果每次都会给控件绑定数据，不管你是第一次访问，还是提交了数据以后，那么这个页面程序的效率可想而知。</font><br />
<br />
<font size="2">一个B/S结构的页面每一次提交，它都会重新从头到尾执行一次。而C/S结构的程序就<font color="#000000">不会这样,这是和C/S结构的程序最大的区别！?</font></font><font color="#000000" size="2">　其实，得不到控件的数据，都是因为这个原因。</font></p>
<img src ="http://www.cnblogs.com/dreamof/aggbug/1178171.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37545/" target="_blank">[新闻]阿里巴巴集团再向淘宝注资20亿元</a>]]></description></item><item><title>Visual Studio .Net团队开发[转]</title><link>http://www.cnblogs.com/dreamof/archive/2008/04/28/1175244.html</link><dc:creator>飛雪飄寒</dc:creator><author>飛雪飄寒</author><pubDate>Mon, 28 Apr 2008 14:15:00 GMT</pubDate><guid>http://www.cnblogs.com/dreamof/archive/2008/04/28/1175244.html</guid><wfw:comment>http://www.cnblogs.com/dreamof/comments/1175244.html</wfw:comment><comments>http://www.cnblogs.com/dreamof/archive/2008/04/28/1175244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/dreamof/comments/commentRss/1175244.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/dreamof/services/trackbacks/1175244.html</trackback:ping><description><![CDATA[摘要: 一、 开发前的准备<br>1、 在装有Windows 2000或者Windows XP Professional的机器上安装.net Framework SDK、Visual Studio.Net、Visual Source Safe 6C。（如果用户操作系统是Windows .Net Server，则无须安装.Net Framework SDK，.Net Server自带的IIS 6已经完全包含了对.Net的支持）这些工具在Visual Studio.Net的安装盘上都可以找到。<br>2、 一台专门用于存放版本控制中心数据库的服务器。该服务器不需要安装.NET Framework SDK和VS.net，但是必须安装VSS 6C。我们称这台服务器为开发服务器DataCenter。<br>3、 一个主域控制器，将DataCenter服务器加入这个域，为每一个开发用户分配域帐号。这样所有小组成员可以通过登录到Window NT域来访问版本控制信息。<br>注意：Visual Studio 6所带的Visual Source Safe 6不支持.Net的一些文件格式。如果你安装了V&nbsp;&nbsp;<a href='http://www.cnblogs.com/dreamof/archive/2008/04/28/1175244.html'>阅读全文</a><img src ="http://www.cnblogs.com/dreamof/aggbug/1175244.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37544/" target="_blank">[新闻]56被关一月 危机的是整个视频业</a>]]></description></item></channel></rss>