﻿<?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>博客园-chengbo的.Net学习日记(Study DotNet)</title><link>http://www.cnblogs.com/chengbo/</link><description>对待生活,应该怀着一颗感恩的心</description><language>zh-cn</language><lastBuildDate>Wed, 08 Oct 2008 10:42:07 GMT</lastBuildDate><pubDate>Wed, 08 Oct 2008 10:42:07 GMT</pubDate><ttl>60</ttl><item><title>压缩 ViewState 后，与 UpdatePanel 的兼容问题</title><link>http://www.cnblogs.com/chengbo/archive/2007/05/02/Ajax-UpdatePanel-and-Viewstate-issue.html</link><dc:creator>chengbo</dc:creator><author>chengbo</author><pubDate>Wed, 02 May 2007 10:09:00 GMT</pubDate><guid>http://www.cnblogs.com/chengbo/archive/2007/05/02/Ajax-UpdatePanel-and-Viewstate-issue.html</guid><wfw:comment>http://www.cnblogs.com/chengbo/comments/734539.html</wfw:comment><comments>http://www.cnblogs.com/chengbo/archive/2007/05/02/Ajax-UpdatePanel-and-Viewstate-issue.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/chengbo/comments/commentRss/734539.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/chengbo/services/trackbacks/734539.html</trackback:ping><description><![CDATA[为了节省带宽，可能需要压缩一下 ViewState ，具体压缩的代码，网上一搜一大把，比如下面这段：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CompressedViewStatePage&nbsp;:&nbsp;System.Web.UI.Page<br><img id=Codehighlighter1_58_1091_Open_Image onclick="this.style.display='none'; Codehighlighter1_58_1091_Open_Text.style.display='none'; Codehighlighter1_58_1091_Closed_Image.style.display='inline'; Codehighlighter1_58_1091_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_58_1091_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_58_1091_Closed_Text.style.display='none'; Codehighlighter1_58_1091_Open_Image.style.display='inline'; Codehighlighter1_58_1091_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_58_1091_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_58_1091_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;CompressedViewStateKey&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">__COMPRESSEDVIEWSTATE</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">override</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;SavePageStateToPersistenceMedium(</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000">&nbsp;state)<br><img id=Codehighlighter1_206_659_Open_Image onclick="this.style.display='none'; Codehighlighter1_206_659_Open_Text.style.display='none'; Codehighlighter1_206_659_Closed_Image.style.display='inline'; Codehighlighter1_206_659_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_206_659_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_206_659_Closed_Text.style.display='none'; Codehighlighter1_206_659_Open_Image.style.display='inline'; Codehighlighter1_206_659_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_206_659_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_206_659_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LosFormatter&nbsp;formatter&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;LosFormatter();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringWriter&nbsp;writer&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;StringWriter();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter.Serialize(writer,&nbsp;state);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;viewState&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;writer.ToString();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[]&nbsp;data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.FromBase64String(viewState);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[]&nbsp;compressedData&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CompressHelper.Compress(data);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;str&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.ToBase64String(compressedData);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClientScript.RegisterHiddenField(CompressedViewStateKey,&nbsp;str);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">override</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000">&nbsp;LoadPageStateFromPersistenceMedium()<br><img id=Codehighlighter1_733_1089_Open_Image onclick="this.style.display='none'; Codehighlighter1_733_1089_Open_Text.style.display='none'; Codehighlighter1_733_1089_Closed_Image.style.display='inline'; Codehighlighter1_733_1089_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_733_1089_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_733_1089_Closed_Text.style.display='none'; Codehighlighter1_733_1089_Open_Image.style.display='inline'; Codehighlighter1_733_1089_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_733_1089_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_733_1089_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;viewState&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Request.Form[CompressedViewStateKey];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[]&nbsp;data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.FromBase64String(viewState);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[]&nbsp;uncompressedData&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CompressHelper.Decompress(data);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;str&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.ToBase64String(uncompressedData);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LosFormatter&nbsp;formatter&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;LosFormatter();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;formatter.Deserialize(str);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<p>这个方法重写了 Page.SavePageStateToPersistenceMedium 和 Page.LoadPageStateFromPersistenceMedium 方法。代码注册了一个 __COMPRESSEDVIEWSTATE 的隐藏字段，把压缩的 ViewState 放在其中，不再使用原先的 __VIEWSTATE 字段。</p>
<p>我要做的一个页面的情况是，顶部有很多选择查询参数的控件，用户首先输入参数，再点击搜索按钮后系统会把搜索出来的记录集显示在 UpdatePanel 里的 GridView 上；若不选择参数， GridView 上会显示数据库中所有的记录集。使用上面的代码在未启用局部刷新时没有问题，但是启用的话，假如用户第一次选择了一些参数，搜索，GridView 会绑定显示搜索出来的记录集，但是这时点击 GridView 的分页按钮， GridView 重新显示的却是所有记录集，也就是说， ViewState 丢失了。</p>
<p>禁用 Ajax 或不用上面的方法压缩 ViewState ，都可以恢复正常，但如果我两个都想要呢？好在这世上有 Google 这东西，我搜索到了下面的解决方案：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CompressedViewStatePage&nbsp;:&nbsp;System.Web.UI.Page<br><img id=Codehighlighter1_58_1550_Open_Image onclick="this.style.display='none'; Codehighlighter1_58_1550_Open_Text.style.display='none'; Codehighlighter1_58_1550_Closed_Image.style.display='inline'; Codehighlighter1_58_1550_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_58_1550_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_58_1550_Closed_Text.style.display='none'; Codehighlighter1_58_1550_Open_Image.style.display='inline'; Codehighlighter1_58_1550_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_58_1550_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_58_1550_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">override</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;SavePageStateToPersistenceMedium(</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000">&nbsp;state)<br><img id=Codehighlighter1_206_999_Open_Image onclick="this.style.display='none'; Codehighlighter1_206_999_Open_Text.style.display='none'; Codehighlighter1_206_999_Closed_Image.style.display='inline'; Codehighlighter1_206_999_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_206_999_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_206_999_Closed_Text.style.display='none'; Codehighlighter1_206_999_Open_Image.style.display='inline'; Codehighlighter1_206_999_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_206_999_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_206_999_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pair&nbsp;pair;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PageStatePersister&nbsp;persister&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.PageStatePersister;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000">&nbsp;viewState;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(state&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;Pair)<br><img id=Codehighlighter1_352_480_Open_Image onclick="this.style.display='none'; Codehighlighter1_352_480_Open_Text.style.display='none'; Codehighlighter1_352_480_Closed_Image.style.display='inline'; Codehighlighter1_352_480_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_352_480_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_352_480_Closed_Text.style.display='none'; Codehighlighter1_352_480_Open_Image.style.display='inline'; Codehighlighter1_352_480_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_352_480_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_352_480_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pair&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(Pair)state;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persister.ControlState&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;pair.First;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;viewState&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;pair.Second;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_503_544_Open_Image onclick="this.style.display='none'; Codehighlighter1_503_544_Open_Text.style.display='none'; Codehighlighter1_503_544_Closed_Image.style.display='inline'; Codehighlighter1_503_544_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_503_544_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_503_544_Closed_Text.style.display='none'; Codehighlighter1_503_544_Open_Image.style.display='inline'; Codehighlighter1_503_544_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_503_544_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_503_544_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;viewState&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;state;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LosFormatter&nbsp;formatter&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;LosFormatter();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringWriter&nbsp;writer&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;StringWriter();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter.Serialize(writer,&nbsp;viewState);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;viewStateStr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;writer.ToString();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[]&nbsp;data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.FromBase64String(viewStateStr);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[]&nbsp;compressedData&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CompressHelper.Compress(data);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;str&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.ToBase64String(compressedData);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persister.ViewState&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;str;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persister.Save();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">override</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000">&nbsp;LoadPageStateFromPersistenceMedium()<br><img id=Codehighlighter1_1073_1548_Open_Image onclick="this.style.display='none'; Codehighlighter1_1073_1548_Open_Text.style.display='none'; Codehighlighter1_1073_1548_Closed_Image.style.display='inline'; Codehighlighter1_1073_1548_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1073_1548_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1073_1548_Closed_Text.style.display='none'; Codehighlighter1_1073_1548_Open_Image.style.display='inline'; Codehighlighter1_1073_1548_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1073_1548_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_1073_1548_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PageStatePersister&nbsp;persister&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.PageStatePersister;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persister.Load();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;viewState&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;persister.ViewState.ToString();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[]&nbsp;data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.FromBase64String(viewState);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[]&nbsp;uncompressedData&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CompressHelper.Decompress(data);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;str&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.ToBase64String(uncompressedData);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LosFormatter&nbsp;formatter&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;LosFormatter();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Pair(persister.ControlState,&nbsp;formatter.Deserialize(str));<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<p>如果用 Reflector 看看 System.Web.UI.Page 类的 SavePageStateToPersistenceMedium 和 LoadPageStateFromPersistenceMedium 方法，你会发现上面的代码和微软的实现差不多，都是使用 Persister.Save 和 Persister.Load 来保存和获取 ViewState （只是上面的代码加上了压缩和解压的逻辑），这里的 Persister 是默认的 HiddenFieldPageStatePersister ，所以页面还是使用 __VIEWSTATE 字段来保存 ViewState。</p>
<p>改成第二段代码来压缩 ViewState 就正常了。至于第一段代码会在 Update Panel 中出问题，我是这样猜的：</p>
<p>启用 UpdatePanel 的局部刷新并不是真正的局部刷新，只不过微软做了点手脚，用 XMLHttpRequest 对象去向服务器提交请求，而服务器毫不知情，还是会生成一个完整的页面生成周期，把生成的 HTML 完整的返回，这时 ScriptManager 把不在 UpdatePanel 里的内容统统去掉，只接收 UpdatePanel 里面的内容，然后在客户端刷新一下，造成局部刷新的&#8220;假像&#8221;。问题就出在用 XMLHttpRequest 对象去请求服务器的时候，ScriptManager 不知道我们把 ViewState 放在 __COMPRESSEDVIEWSTATE 字段中，而用的是 __VIEWSTATE 字段里的内容，所以服务器会认为用户没有输入查询参数，返回了数据库中的所有记录&#8230;&#8230;</p>
<p>问题好像就是这样产生的，不过我还有点不清楚，Persister.ControlState 和 Persister.ViewState 各是什么意思， MSDN 上也没说太明白，哪位大虾解释一下？<a href="http://forums.asp.net/thread/1548863.aspx"><br><br>参考</a> </p><img src ="http://www.cnblogs.com/chengbo/aggbug/734539.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42856/" target="_blank">[新闻]百度网络交易平台定名“有啊”</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>如何让 firefox 的窗口大小不再被网页脚本改变</title><link>http://www.cnblogs.com/chengbo/archive/2007/03/31/695555.html</link><dc:creator>chengbo</dc:creator><author>chengbo</author><pubDate>Sat, 31 Mar 2007 15:59:00 GMT</pubDate><guid>http://www.cnblogs.com/chengbo/archive/2007/03/31/695555.html</guid><wfw:comment>http://www.cnblogs.com/chengbo/comments/695555.html</wfw:comment><comments>http://www.cnblogs.com/chengbo/archive/2007/03/31/695555.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/chengbo/comments/commentRss/695555.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/chengbo/services/trackbacks/695555.html</trackback:ping><description><![CDATA[<p><img alt="stop web sites from resizing Firefox windows" src="http://blog.chengbo.net/2007/03/27/firefox.js.jpg"></p>
<p>有时候，firefox 的窗口大小会被你正在浏览的网页所改变（比如说点击 wordpress 后台&#8220;编辑 HTML&#8221;按钮的时候），这让我感到很不舒服，就像弹出广告一样，我相信大家都不会喜欢。其实有一个简单的方法可以让 firefox 的窗口不再被网页改变。</p>
<ol>
    <li>Mac/Linux 用户：点击 编辑 &gt; 参数设置；Windows 用户：工具 &gt; 选项
    <li>选择 内容 标签页
    <li>在&#8220;启用 Javascript&#8221; 的右侧，点击&#8220;高级...&#8221;
    <li>取消"移动或改变窗口大小" </li>
</ol>
<p>简单而又非常有效的一个方法，希望你能喜欢。<a href="http://www.lifehacker.com/software/firefox/stop-web-sites-from-resizing-firefox-windows-247048.php">技巧来源</a></p><img src ="http://www.cnblogs.com/chengbo/aggbug/695555.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42855/" target="_blank">[新闻]全屏触摸力反馈 黑莓Storm发布</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>用Javascript检查Caps Lock是否按下</title><link>http://www.cnblogs.com/chengbo/archive/2007/01/25/630107.html</link><dc:creator>chengbo</dc:creator><author>chengbo</author><pubDate>Thu, 25 Jan 2007 04:44:00 GMT</pubDate><guid>http://www.cnblogs.com/chengbo/archive/2007/01/25/630107.html</guid><wfw:comment>http://www.cnblogs.com/chengbo/comments/630107.html</wfw:comment><comments>http://www.cnblogs.com/chengbo/archive/2007/01/25/630107.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/chengbo/comments/commentRss/630107.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/chengbo/services/trackbacks/630107.html</trackback:ping><description><![CDATA[<p>在输入密码的时候，用户不看键盘的话很难知道自己是否启用了大写，所以到经常因为大小写错了而被系统拒之门外。</p>
<p>其实一段js代码就可以解决这个问题。<br></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px;
background-color: #eeeeee; font-size: 13px; width:
98%;"><!--<br><br>Code highlighting produced by
Actipro CodeHighlighter
(freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span
style="color: #000000;">&lt;</span><span style="color:
#000000;">script</span><span style="color:
#000000;">&gt;</span><span style="color:
#000000;"><br></span><span style="color:
#0000ff;">function</span><span style="color:
#000000;">&nbsp;capLock(e){<br>&nbsp;kc&nbsp;</span><span
style="color: #000000;">=</span><span style="color:
#000000;">&nbsp;e.keyCode</span><span style="color:
#000000;">?</span><span style="color:
#000000;">e.keyCode:e.which;<br>&nbsp;sk&nbsp;</span><span
style="color: #000000;">=</span><span style="color:
#000000;">&nbsp;e.shiftKey</span><span style="color:
#000000;">?</span><span style="color:
#000000;">e.shiftKey:((kc&nbsp;</span><span
style="color: #000000;">==</span><span style="color:
#000000;">&nbsp;</span><span style="color:
#000000;">16</span><span style="color:
#000000;">)</span><span style="color:
#000000;">?</span><span style="color:
#0000ff;">true</span><span style="color:
#000000;">:</span><span style="color:
#0000ff;">false</span><span style="color:
#000000;">);<br>&nbsp;</span><span style="color:
#0000ff;">if</span><span style="color:
#000000;">(((kc&nbsp;</span><span style="color:
#000000;">&gt;=</span><span style="color:
#000000;">&nbsp;</span><span style="color:
#000000;">65</span><span style="color:
#000000;">&nbsp;</span><span style="color:
#000000;">&amp;&amp;</span><span style="color:
#000000;">&nbsp;kc&nbsp;</span><span style="color:
#000000;">&lt;=</span><span style="color:
#000000;">&nbsp;</span><span style="color:
#000000;">90</span><span style="color:
#000000;">)&nbsp;</span><span style="color:
#000000;">&amp;&amp;</span><span style="color:
#000000;">&nbsp;</span><span style="color:
#000000;">!</span><span style="color:
#000000;">sk)</span><span style="color:
#000000;">||</span><span style="color:
#000000;">((kc&nbsp;</span><span style="color:
#000000;">&gt;=</span><span style="color:
#000000;">&nbsp;</span><span style="color:
#000000;">97</span><span style="color:
#000000;">&nbsp;</span><span style="color:
#000000;">&amp;&amp;</span><span style="color:
#000000;">&nbsp;kc&nbsp;</span><span style="color:
#000000;">&lt;=</span><span style="color:
#000000;">&nbsp;</span><span style="color:
#000000;">122</span><span style="color:
#000000;">)&nbsp;</span><span style="color:
#000000;">&amp;&amp;</span><span style="color:
#000000;">&nbsp;sk))<br>&nbsp;&nbsp;document.getElementById('divMayus').style.visibility&nbsp;</span><span
style="color: #000000;">=</span><span style="color:
#000000;">&nbsp;'visible';<br>&nbsp;</span><span
style="color: #0000ff;">else</span><span style="color:
#000000;"><br>&nbsp;&nbsp;document.getElementById('divMayus').style.visibility&nbsp;</span><span
style="color: #000000;">=</span><span style="color:
#000000;">&nbsp;'hidden';<br>}<br></span><span
style="color: #000000;">&lt;/</span><span style="color:
#000000;">script</span><span style="color:
#000000;">&gt;</span></div>
<br>
<p>
</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px;
background-color: #eeeeee; font-size: 13px; width:
98%;"><!--<br><br>Code highlighting produced by
Actipro CodeHighlighter
(freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span
style="color: #0000ff;">&lt;</span><span style="color:
#800000;">SPAN</span><span style="color:
#0000ff;">&gt;&lt;</span><span style="color:
#800000;">input&nbsp;</span><span style="color:
#ff0000;">type</span><span style="color:
#0000ff;">="password"</span><span style="color:
#ff0000;">&nbsp;name</span><span style="color:
#0000ff;">="txtPassword"</span><span style="color:
#ff0000;">&nbsp;onkeypress</span><span style="color:
#0000ff;">="capLock(event)"</span><span style="color:
#ff0000;">&nbsp;</span><span style="color:
#0000ff;">/&gt;</span><span style="color:
#000000;"><br></span><span style="color:
#0000ff;">&lt;</span><span style="color:
#800000;">SPAN</span><span style="color:
#0000ff;">&gt;&lt;</span><span style="color:
#800000;">div&nbsp;</span><span style="color:
#ff0000;">id</span><span style="color:
#0000ff;">="divMayus"</span><span style="color:
#ff0000;">&nbsp;style</span><span style="color:
#0000ff;">="visibility:hidden"</span><span style="color:
#0000ff;">&gt;</span><span style="color:
#000000;">Caps&nbsp;Lock&nbsp;is&nbsp;on.</span><span
style="color: #0000ff;">&lt;/</span><span style="color:
#800000;">div</span><span style="color:
#0000ff;">&gt;</span><span style="color: #000000;">
<br></span></div>
<p>&#160;</p>
<p>试试效果吧。</p>
<p><a title="原文"
href="http://www.codeproject.com/useritems/Detect_Caps_Lock.asp">原文
</a></p><img src ="http://www.cnblogs.com/chengbo/aggbug/630107.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42854/" target="_blank">[新闻]微软推出Touchless：无需触屏的触屏技术</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>如何用C#和SQL获得当前月的第一天和最后一天</title><link>http://www.cnblogs.com/chengbo/archive/2006/12/29/607239.html</link><dc:creator>chengbo</dc:creator><author>chengbo</author><pubDate>Fri, 29 Dec 2006 09:31:00 GMT</pubDate><guid>http://www.cnblogs.com/chengbo/archive/2006/12/29/607239.html</guid><wfw:comment>http://www.cnblogs.com/chengbo/comments/607239.html</wfw:comment><comments>http://www.cnblogs.com/chengbo/archive/2006/12/29/607239.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/chengbo/comments/commentRss/607239.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/chengbo/services/trackbacks/607239.html</trackback:ping><description><![CDATA[C#<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;year&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;DateTime.Now.Year;<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;month&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;DateTime.Now.Month;<br><br>DateTime&nbsp;firstDayOfThisMonth&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;DateTime(year,&nbsp;month,&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>DateTime&nbsp;lastDayOfThisMonth&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;DateTime(year,&nbsp;month,&nbsp;DateTime.DaysInMonth(year,&nbsp;month));</span></div>
SQL<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">DECLARE</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@NOW</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">DATETIME</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">DECLARE</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@FistDayOfThisMonth</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">DATETIME</span><span style="color: #000000;">&nbsp;&nbsp;<br></span><span style="color: #0000ff;">DECLARE</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@LastDayOfThisMonth</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">DATETIME</span><span style="color: #000000;">&nbsp;&nbsp;<br><br></span><span style="color: #0000ff;">SET</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@NOW</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #ff00ff;">GETDATE</span><span style="color: #000000;">()<br></span><span style="color: #0000ff;">SET</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@FistDayOfThisMonth</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@NOW</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #ff00ff;">DAY</span><span style="color: #000000;">(</span><span style="color: #008000;">@NOW</span><span style="color: #000000;">)&nbsp;</span><span style="color: #808080;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">&nbsp;&nbsp;<br></span><span style="color: #0000ff;">SET</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@LastDayOfThisMonth</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #ff00ff;">DATEADD</span><span style="color: #000000;">(</span><span style="color: #ff00ff;">MONTH</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">,&nbsp;</span><span style="color: #008000;">@NOW</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #ff00ff;">DAY</span><span style="color: #000000;">(</span><span style="color: #008000;">@NOW</span><span style="color: #000000;">)&nbsp;</span><span style="color: #808080;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">)&nbsp;</span><span style="color: #808080;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">SELECT</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@FistDayOfThisMonth</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">SELECT</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@LastDayOfThisMonth</span></div><img src ="http://www.cnblogs.com/chengbo/aggbug/607239.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42842/" target="_blank">[新闻]AMD剥离芯片制造业务 获60亿美元投资</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>每天如何自动编译项目并将之打包添加到VSS中</title><link>http://www.cnblogs.com/chengbo/archive/2006/11/29/576140.html</link><dc:creator>chengbo</dc:creator><author>chengbo</author><pubDate>Wed, 29 Nov 2006 03:24:00 GMT</pubDate><guid>http://www.cnblogs.com/chengbo/archive/2006/11/29/576140.html</guid><wfw:comment>http://www.cnblogs.com/chengbo/comments/576140.html</wfw:comment><comments>http://www.cnblogs.com/chengbo/archive/2006/11/29/576140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/chengbo/comments/commentRss/576140.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/chengbo/services/trackbacks/576140.html</trackback:ping><description><![CDATA[项目组需要每天编译一次项目，然后把编译好的程序集打包，添加到SourceSafe以日期命名的Project中。<br>有一个批处理的脚本可以自动完成这些操作，其中会用到SourceSafe提供的一些命令。<br>更多命令请查看<a href="http://msdn2.microsoft.com/en-us/library/asxkfzy4(VS.80).aspx">MSDN</a>。<br><br>ECHO OFF<br>d:<br>cd\<br>cd D:\PublishCode\Publish\SourceCode<br><br>:: 设置vss的环境变量<br>path "C:\Program Files\Microsoft Visual Studio\VSS\win32"<br><br>:: 设置VSS数据库路径<br>set ssdir=C:\Program Files\Microsoft Visual Studio\VSS<br><br>:: 获取最新代码<br>ss get "$/Source" -Yusername,password -R -i-n <br>@ECHO ON<br>@ECHO OFF<br><br>:: 设置vs的环境变量<br>set oldpath=%path%<br>set path="C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools";%path%<br>call vsvars32.bat<br>@echo on <br>devenv /rebuild Release "D:\PublishCode\Publish\SourceCode\WindowsApplication2.sln"<br>set path=%oldpath% &nbsp;&nbsp; &nbsp;<br><br>@ECHO ON<br>d:<br>cd\<br>cd D:\DailyBuilder\<br>path C:\Program Files\WinRAR\<br><br>:: 去除只读属性<br>C:\windows\system32\attrib -r D:\DailyBuilder\Publish.rar<br><br>:: 打包编译好的程序<br>rar a Publish.rar "D:\POPublishCode\NeweggPOPublish\SourceCode\WindowsApplication2\bin\Release" "D:\POPublishCode\NeweggPOPublish\SourceCode\RemotingServer\bin\Release"<br><br>path "C:\Program Files\Microsoft Visual Studio\VSS\win32"<br>set ssdir=C:\Program Files\Microsoft Visual Studio\VSS<br>:: 设置当前Project为$/DailyBuild<br>ss Cp "$/DailyBuild"&nbsp; -Yusername,password<br>:: 删除Project，如(2006-11-29)<br>ss Delete %date:~6,4%-%date:~0,2%-%date:~3,2%-Release -i-y -Yusername,password<br>:: 新建Project，如(2006-11-29)<br>ss Create %date:~6,4%-%date:~0,2%-%date:~3,2%-Release -C\ -Yusername,password<br>:: 设置当前Project为$/DailyBuild/2006-11-29<br>ss Cp $/DailyBuild/%date:~6,4%-%date:~0,2%-%date:~3,2%-Release -Yusername,password<br>:: 添加Publish.rar到VSS中<br>ss Add Publish.rar -C\ -Yusername,password -I-<br><br>pause<br><br>注：%date%的值在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。所以请先在命令行中查看一下echo %date%的运行结果。
<br><img src ="http://www.cnblogs.com/chengbo/aggbug/576140.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42841/" target="_blank">[新闻]Google向Wine贡献更多代码</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>maxthon 2 预览版的邀请</title><link>http://www.cnblogs.com/chengbo/archive/2006/10/17/531752.html</link><dc:creator>chengbo</dc:creator><author>chengbo</author><pubDate>Tue, 17 Oct 2006 12:04:00 GMT</pubDate><guid>http://www.cnblogs.com/chengbo/archive/2006/10/17/531752.html</guid><wfw:comment>http://www.cnblogs.com/chengbo/comments/531752.html</wfw:comment><comments>http://www.cnblogs.com/chengbo/archive/2006/10/17/531752.html#Feedback</comments><slash:comments>20</slash:comments><wfw:commentRss>http://www.cnblogs.com/chengbo/comments/commentRss/531752.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/chengbo/services/trackbacks/531752.html</trackback:ping><description><![CDATA[今天惊奇的发现，我居然还有20个maxthon 2 预览版的邀请，话就不多说了，想要的朋友留下mail吧。<img src ="http://www.cnblogs.com/chengbo/aggbug/531752.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42840/" target="_blank">[新闻]苹果创始人Steve Wozniak称iPod将被淘汰</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>成都古羌科技有限公司招聘</title><link>http://www.cnblogs.com/chengbo/archive/2006/09/20/509238.html</link><dc:creator>chengbo</dc:creator><author>chengbo</author><pubDate>Wed, 20 Sep 2006 02:16:00 GMT</pubDate><guid>http://www.cnblogs.com/chengbo/archive/2006/09/20/509238.html</guid><wfw:comment>http://www.cnblogs.com/chengbo/comments/509238.html</wfw:comment><comments>http://www.cnblogs.com/chengbo/archive/2006/09/20/509238.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/chengbo/comments/commentRss/509238.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/chengbo/services/trackbacks/509238.html</trackback:ping><description><![CDATA[<p>注意:<br>请直接致电:86256791,傅小姐.<br>或发邮件:qukanshu@gmail.com</p>
<p>主要工作:基于Linux/MYSQL/PHP或ASP/WINDOWS/MSSQL开发大型网站程序.</p>
<p>要求:<br>1.精通HTML,ASP,.NET,CSS+DIV,MSSQL数据库<br>2.熟悉VB,VC,DELPHI程序语言其中一种<br>3.有强烈的创新精神与团队意识<br>4.精通XML/XSLT/CSS/JAVASCRIPT者优先<br>5.有大型网站开发经验者优先</p>
<p>备注:我们的招聘没有任何学历限制,我们只看重:<br>&nbsp;&nbsp;&nbsp; 1.素质修养 2.学习能力<br>我们为每一个团队成员提供广阔的发展空间和学习机会,及富有竞争力的薪酬和福利.</p>
<p>注意:<br>请直接致电:86256791,傅小姐.<br>或发邮件:qukanshu@gmail.com<br><br><span style="COLOR: red">代人招聘，不要与我联系，谢谢</span></p><img src ="http://www.cnblogs.com/chengbo/aggbug/509238.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42839/" target="_blank">[新闻]福布斯：硅谷日子将更难过 谁下一个倒下</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>怎样用TSQL建JOB</title><link>http://www.cnblogs.com/chengbo/archive/2006/09/19/508663.html</link><dc:creator>chengbo</dc:creator><author>chengbo</author><pubDate>Tue, 19 Sep 2006 09:18:00 GMT</pubDate><guid>http://www.cnblogs.com/chengbo/archive/2006/09/19/508663.html</guid><wfw:comment>http://www.cnblogs.com/chengbo/comments/508663.html</wfw:comment><comments>http://www.cnblogs.com/chengbo/archive/2006/09/19/508663.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/chengbo/comments/commentRss/508663.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/chengbo/services/trackbacks/508663.html</trackback:ping><description><![CDATA[<p>建job可以用企业管理器，但这样的话发布会比较麻烦，所以今天查了一下用tsql建job的方法。</p>
<p>建job分三个步骤：add&nbsp;job -&gt; add schedule - &gt; add step</p>
<p>分别由三个sp完成：<a href="http://msdn2.microsoft.com/en-us/library/ms182079.aspx">sp_add_job</a> <a href="http://msdn2.microsoft.com/en-us/library/ms187320.aspx">sp_add_schedule</a>&nbsp;<a href="http://msdn2.microsoft.com/en-us/library/ms187358.aspx">sp_add_jobstep</a> </p>
<p>给这三个sp加上一些参数，执行就OK了，run之前别忘了USE msdb哦</p><img src ="http://www.cnblogs.com/chengbo/aggbug/508663.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42836/" target="_blank">[新闻]微软老矣 尚能赚否？</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>xml参数存储过程</title><link>http://www.cnblogs.com/chengbo/archive/2006/08/30/487073.html</link><dc:creator>chengbo</dc:creator><author>chengbo</author><pubDate>Wed, 30 Aug 2006 13:49:00 GMT</pubDate><guid>http://www.cnblogs.com/chengbo/archive/2006/08/30/487073.html</guid><wfw:comment>http://www.cnblogs.com/chengbo/comments/487073.html</wfw:comment><comments>http://www.cnblogs.com/chengbo/archive/2006/08/30/487073.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/chengbo/comments/commentRss/487073.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/chengbo/services/trackbacks/487073.html</trackback:ping><description><![CDATA[<p>在项目中，需要将一个DataGrid中的信息传入数据库进行更新，前提是无法使用DataAdapter，请教了师傅，才知道了还有xml参数这个东东可以完成这个任务。</p>
<p>存储过程如下：</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">PROCEDURE</span><span style="color: #000000;">&nbsp;dbo.UP_TestProc<br>(<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">@XML</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">TEXT</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;,&nbsp;</span><span style="color: #008000;">@DataSetName</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">100</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;,&nbsp;</span><span style="color: #008000;">@DataTableName</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">100</span><span style="color: #000000;">)<br>)<br></span><span style="color: #0000ff;">AS</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">SET</span><span style="color: #000000;">&nbsp;NOCOUNT&nbsp;</span><span style="color: #0000ff;">ON</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">DECLARE</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@RowPattern</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">300</span><span style="color: #000000;">)<br></span><span style="color: #0000ff;">SET</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@RowPattern</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">/</span><span style="color: #ff0000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@DataSetName</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">/</span><span style="color: #ff0000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@DataTableName</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">DECLARE</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">@idoc</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">INT</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">EXEC</span><span style="color: #000000;">&nbsp;sp_xml_preparedocument&nbsp;</span><span style="color: #008000;">@idoc</span><span style="color: #000000;">&nbsp;OUTPUT,&nbsp;</span><span style="color: #008000;">@XML</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">SELECT</span><span style="color: #000000;">&nbsp;Column1,&nbsp;Column2<br></span><span style="color: #0000ff;">INTO</span><span style="color: #000000;">&nbsp;#tmpTable<br></span><span style="color: #0000ff;">FROM</span><span style="color: #000000;">&nbsp;OPENXML&nbsp;(</span><span style="color: #008000;">@idoc</span><span style="color: #000000;">,&nbsp;</span><span style="color: #008000;">@RowPattern</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;">)<br></span><span style="color: #0000ff;">WITH</span><span style="color: #000000;"><br>(<br>&nbsp;&nbsp;&nbsp;&nbsp;Column1&nbsp;</span><span style="color: #000000; font-weight: bold;">INT<br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp; Column1 </span><span style="color: #000000; font-weight: bold;">CHAR (4)</span><br><span style="color: #000000;">)<br><br></span><span style="color: #0000ff;">EXEC</span><span style="color: #000000;">&nbsp;sp_xml_removedocument&nbsp;</span><span style="color: #008000;">@idoc</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">INTO</span><span style="color: #000000;">&nbsp;Table1(</span><span style="color: #ff0000;">[</span><span style="color: #ff0000;">Column1</span><span style="color: #ff0000;">]</span><span style="color: #000000;">,&nbsp;</span><span style="color: #ff0000;">[</span><span style="color: #ff0000;">Column2</span><span style="color: #ff0000;">]</span><span style="color: #000000;">)<br></span><span style="color: #0000ff;">SELECT</span><span style="color: #000000;">&nbsp;Column1,&nbsp;Column2&nbsp;</span><span style="color: #0000ff;">FROM</span><span style="color: #000000;">&nbsp;#tmpTable&nbsp;(NOLOCK)</span></div>
<p>传入三个参数，第一个是包含数据的XML，通常用DataSet.GetXml()方法就可以获得；第二个是DataSet名字；第三个是DataTable的名字。</p>
<p>具体使用方法，可以查看联机帮助。最近我越来越懒了，呵呵。<br></p><img src ="http://www.cnblogs.com/chengbo/aggbug/487073.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42832/" target="_blank">[新闻]YouTube探索新赢利模式 开始售音乐、视频游戏</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>如何在ReadOnly的DataGrid中的让CheckBox列可点击</title><link>http://www.cnblogs.com/chengbo/archive/2006/07/27/460971.html</link><dc:creator>chengbo</dc:creator><author>chengbo</author><pubDate>Thu, 27 Jul 2006 05:20:00 GMT</pubDate><guid>http://www.cnblogs.com/chengbo/archive/2006/07/27/460971.html</guid><wfw:comment>http://www.cnblogs.com/chengbo/comments/460971.html</wfw:comment><comments>http://www.cnblogs.com/chengbo/archive/2006/07/27/460971.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/chengbo/comments/commentRss/460971.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/chengbo/services/trackbacks/460971.html</trackback:ping><description><![CDATA[<p>把一个DataSet绑定到自定义列类型的DataGrid中，DataSet中有一列是bool值， DataGrid中相应的列是一个DataGridBoolColumn，呈现为CheckBox。</p>
<p>想要达到的效果是：DataGrid除了CheckBox列可以由用户点击改变值，其它的都为只读，不能编辑。</p>
<p>看起来挺简单件事，把DataGrid的ReadOnly设置为true，DataGridBoolColumn的ReadOnly设置为false就行了嘛，可是不知道为什么，这样设置后，CheckBox就是不能点击，郁闷。</p>
<p>换一个方式，把除了DataGridBoolColumn的其它列的ReadOnly设置为true，DataGrid的ReadOnly为默认的false。这样是达到了效果，可是DataGrid下面多了一行空白行，用户可以填入数据添加新行，也不行。</p>
<p>最后google了一下，终于解决了：</p>
<p>把DataSet转变为DataView，把它绑定到DataGrid上，同时DataView有一个属性AllowNew，把它设置为false后，再用上面的方法，就OK了，CheckBox可点击，同时不能添加新行。<br><br>希望对大家有帮助。</p><img src ="http://www.cnblogs.com/chengbo/aggbug/460971.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42831/" target="_blank">[新闻]英特尔Core i7将继续称王 性能提52%</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>