﻿<?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>博客园-欢迎来到助燃的Blog！</title><link>http://www.cnblogs.com/doraeimo/</link><description>对你有益的氧气，或者……对你有害的氯气</description><language>zh-cn</language><lastBuildDate>Tue, 02 Dec 2008 05:38:49 GMT</lastBuildDate><pubDate>Tue, 02 Dec 2008 05:38:49 GMT</pubDate><ttl>60</ttl><item><title>为Access模拟compute by分类汇总功能</title><link>http://www.cnblogs.com/doraeimo/archive/2008/07/25/1250945.html</link><dc:creator>助燃</dc:creator><author>助燃</author><pubDate>Thu, 24 Jul 2008 17:06:00 GMT</pubDate><guid>http://www.cnblogs.com/doraeimo/archive/2008/07/25/1250945.html</guid><wfw:comment>http://www.cnblogs.com/doraeimo/comments/1250945.html</wfw:comment><comments>http://www.cnblogs.com/doraeimo/archive/2008/07/25/1250945.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/doraeimo/comments/commentRss/1250945.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/doraeimo/services/trackbacks/1250945.html</trackback:ping><description><![CDATA[<p>最近用Access数据库做一个微型应用，需要实现类似SQL Server里compute by语法的效果，网上google了一下，得知jet不支持，只好自己用.net模拟一个了，暂时只支持根据一个字段sum另一个字段，即sum(fieldA) compute by (filedB)。注意fieldA必须是decimal类型，如果是double类型恐怕需要修改源代码。</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_0_340_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_0_340_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_0_340_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_0_340_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_0_340_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_0_340_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_0_340_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_0_340_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><span id="Codehighlighter1_0_340_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">/**/</span><span id="Codehighlighter1_0_340_Open_Text"><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;模拟SQL&nbsp;SERVER中的分类汇总ComputeBy语句<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="sourceTable"&gt;</span><span style="color: #008000">源数据</span><span style="color: #808080">&lt;/param&gt;</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="sumField"&gt;</span><span style="color: #008000">求和字段</span><span style="color: #808080">&lt;/param&gt;</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="byField"&gt;</span><span style="color: #008000">分类字段</span><span style="color: #808080">&lt;/param&gt;</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="needTotolSum"&gt;</span><span style="color: #008000">是否需要汇总合计</span><span style="color: #808080">&lt;/param&gt;</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;returns&gt;</span><span style="color: #008000">目标数据源，重新绑定控件的DataSource属性后生效</span><span style="color: #808080">&lt;/returns&gt;</span></span><br />
<span style="color: #008080">&nbsp;9</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;DataTable&nbsp;ComputeBy(DataTable&nbsp;sourceTable,&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;sumField,&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;byField,&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;needTotolSum)<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img id="Codehighlighter1_465_1845_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_465_1845_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_465_1845_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_465_1845_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_465_1845_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_465_1845_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_465_1845_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_465_1845_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_465_1845_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"  alt="" /></span><span id="Codehighlighter1_465_1845_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;rowCount&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sourceTable.Rows.Count;<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(rowCount&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;sourceTable;</span><span style="color: #008000">//</span><span style="color: #008000">数据量为0，不执行计算分类汇总</span><span style="color: #008000"><br />
</span><span style="color: #008080">13</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataTable&nbsp;destTable&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sourceTable.Copy();</span><span style="color: #008000">//</span><span style="color: #008000">深拷贝数据源</span><span style="color: #008000"><br />
</span><span style="color: #008080">14</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;insertTimes&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;</span><span style="color: #008000">//</span><span style="color: #008000">插入次数，用于记录数据源与其拷贝之间的相对偏移量</span><span style="color: #008000"><br />
</span><span style="color: #008080">15</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">decimal</span><span style="color: #000000">&nbsp;sum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;</span><span style="color: #008000">//</span><span style="color: #008000">分类汇总</span><span style="color: #008000"><br />
</span><span style="color: #008080">18</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">decimal</span><span style="color: #000000">&nbsp;totolSum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;</span><span style="color: #008000">//</span><span style="color: #008000">合计</span><span style="color: #008000"><br />
</span><span style="color: #008080">19</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataRow&nbsp;dr;<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;rowCount)<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img id="Codehighlighter1_895_1437_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_895_1437_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_895_1437_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_895_1437_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_895_1437_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_895_1437_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_895_1437_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_895_1437_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_895_1437_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"  alt="" /></span><span id="Codehighlighter1_895_1437_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">decimal</span><span style="color: #000000">)sourceTable.Rows[i][sumField];<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">;<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(j&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;rowCount&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;sourceTable.Rows[i][byField].ToString()&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;sourceTable.Rows[j][byField].ToString())<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img id="Codehighlighter1_1123_1402_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1123_1402_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1123_1402_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1123_1402_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1123_1402_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1123_1402_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1123_1402_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1123_1402_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1123_1402_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"  alt="" /></span><span id="Codehighlighter1_1123_1402_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;destTable.NewRow();<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr[sumField]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sum;<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;totolSum&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;sum;<br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destTable.Rows.InsertAt(dr,&nbsp;j&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;insertTimes);</span><span style="color: #008000">//</span><span style="color: #008000">插入分类汇总</span><span style="color: #008000"><br />
</span><span style="color: #008080">31</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insertTimes</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;destTable.NewRow();<br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr[sumField]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sum;<br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destTable.Rows.InsertAt(dr,&nbsp;j&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;insertTimes);<br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">分类汇总插入完毕，插入合计</span><span style="color: #008000"><br />
</span><span style="color: #008080">39</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(needTotolSum)<br />
</span><span style="color: #008080">40</span><span style="color: #000000"><img id="Codehighlighter1_1635_1805_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1635_1805_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1635_1805_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1635_1805_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1635_1805_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1635_1805_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1635_1805_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1635_1805_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1635_1805_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"  alt="" /></span><span id="Codehighlighter1_1635_1805_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;totolSum&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;sum;<br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;destTable.NewRow();<br />
</span><span style="color: #008080">43</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr[sumField]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;totolSum;<br />
</span><span style="color: #008080">44</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destTable.Rows.Add(dr);<br />
</span><span style="color: #008080">45</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">46</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;destTable;<br />
</span><span style="color: #008080">47</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<img src ="http://www.cnblogs.com/doraeimo/aggbug/1250945.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43760/" 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>让Validation Callout Extender与Custom Validator协作</title><link>http://www.cnblogs.com/doraeimo/archive/2007/09/06/884482.html</link><dc:creator>助燃</dc:creator><author>助燃</author><pubDate>Thu, 06 Sep 2007 07:48:00 GMT</pubDate><guid>http://www.cnblogs.com/doraeimo/archive/2007/09/06/884482.html</guid><wfw:comment>http://www.cnblogs.com/doraeimo/comments/884482.html</wfw:comment><comments>http://www.cnblogs.com/doraeimo/archive/2007/09/06/884482.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/doraeimo/comments/commentRss/884482.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/doraeimo/services/trackbacks/884482.html</trackback:ping><description><![CDATA[官方的说明中提到ValidatorCalloutExtender并不支持CustomValidator的服务器端验证，而我又迫切需要这个功能，于是使用google大法，找到了这篇名为<a href="http://www.junnark.com/Articles/Article0001.aspx">《Validating Server Side using the Validation Callout Extender with the Custom Validator》</a> 的文章，它提到了可以通过让Page类实现System.Web.UI.ICallbackEventHandler接口从而使页面本身支持异步回调，接着指定CustomValidator的ClientValidationFunction属性，把验证事件关联到一个客户端的js函数，在该函数中通过异步回调获得服务器端验证结果后返回，那么对于ValidatorCalloutExtender而言，没有与服务器端通信，只是从js中获得了一个验证结果，效果自然是大大的好。<br />
<br />
不过，这个方法太烦杂了，上次看了老赵的这篇 <a href="http://www.cnblogs.com/JeffreyZhao/archive/2007/06/04/Extender_model_and_Behavior_model.html">分清ASP.NET AJAX中的Extender和Behavior模型</a> 当时就受到了启发，在服务器端验证事件中，若验证失败，则注册一个启动脚本，内容是调用ValidatorCalloutExtender的Behavior中显示气泡提示的方法，那么当这个启动脚本被执行不就大功告成了嘛！<br />
<br />
说干就干，首先摸索了一下那个弹出气泡的方法名，居然就是show()，要是不对恐怕还要到官方文档里面查，接着在页面中添加一个RegularExpressionValidator，因为如果ValidatorCalloutExtender直接关联带有服务器端验证的CustomValidator会报错，所以需要一个替代品，例如：
<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 alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">asp:RegularExpressionValidator&nbsp;</span><span style="color: #ff0000">ID</span><span style="color: #0000ff">="rev"</span><span style="color: #ff0000">&nbsp;runat</span><span style="color: #0000ff">="server"</span><span style="color: #ff0000">&nbsp;ErrorMessage</span><span style="color: #0000ff">="用户名密码错误！"</span><span style="color: #ff0000">&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ControlToValidate</span><span style="color: #0000ff">="Password"</span><span style="color: #ff0000">&nbsp;Display</span><span style="color: #0000ff">="None"</span><span style="color: #ff0000">&nbsp;ValidationExpression</span><span style="color: #0000ff">="\w*|\W*"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">asp:RegularExpressionValidator</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;</span></div>
其中，ErrorMessage即弹出气泡中的提示文字，若提示内容会由于服务器端验证结果动态变化，则可以在后台代码中动态改变该属性从而达到目的；ControlToValidate为弹出气泡指向的文本框；Display设为none用于隐藏这个替代品；正则表达式设为&#8220;\w*|\W*&#8221;表示任意字符都能通过验证，这样就不会出现客户端正则表达式验证没通过而激活气泡提示的情况了。接着添加一个ValidatorCalloutExtender，注意要指明BehaviorID属性<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 alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">cc1:ValidatorCalloutExtender&nbsp;</span><span style="color: #ff0000">ID</span><span style="color: #0000ff">="vceLogin"</span><span style="color: #ff0000">&nbsp;runat</span><span style="color: #0000ff">="server"</span><span style="color: #ff0000">&nbsp;TargetControlID</span><span style="color: #0000ff">="rev"</span><span style="color: #ff0000">&nbsp;BehaviorID</span><span style="color: #0000ff">="vceLoginBehavior"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">cc1:ValidatorCalloutExtender</span><span style="color: #0000ff">&gt;</span></div>
接下来转到后台代码，在验证失败后添加一条注册启动脚本的语句<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 alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">ScriptManager.RegisterStartupScript(UpdatePanel1,&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.GetType(),&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">loginFailed</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">window.setTimeout(\</span><span style="color: #000000">"</span><span style="color: #000000">$find(</span><span style="color: #000000">'</span><span style="color: #000000">vceLoginBehavior</span><span style="color: #000000">'</span><span style="color: #000000">).show();\</span><span style="color: #000000">"</span><span style="color: #000000">,500);</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></div>
之所以在js中用到了延时，是因为之前不用延时直接执行会发生$find('vceLoginBehavior')对象为Null的意外，遗憾的是原因我到目前也没有找到，麻烦哪位高人指点一下哈，在下先谢过！这个写法自然不够安全，最好能写成若$find('vceLoginBehavior')对象为空，隔一段时间再执行直到执行成功为止，这儿就先偷个懒，毕竟我的这个程序大多是内网用的，网速可以保证。如果觉得有必要在气泡弹出时将焦点移动到气泡所指向的文本框，那就再追加一句<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 alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">ScriptManager1.SetFocus(txtPassword);</span></div>
OK，大功告成！实际测试时还发现了ValidatorCalloutExtender的一个小bug，气泡部分可能被页面上的控件遮住，没设z-index的关系，不得以改了源码，AjaxControlToolkit\ValidatorCallout\ValidatorCalloutBehavior.js的第68行追加一句
<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 alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">popupTable.style.zIndex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">1000</span><span style="color: #000000">"</span><span style="color: #000000">;</span></div>
在漫长的编译过程中，想了下为什么这个控件没有指定css的class，也没有指定id，本来只要有其中任意一个，我就不用来改源码了... <br />
<span style="color: red">以上内容适用于10618，更新到10920后，按上述做法居然出现问题，请听我继续分解...<br />
<span style="color: #000000">版本更新后，运行时报错&#8220;<font face="Verdana">this._popupBehavior为空或不是对象</font>&#8221;，郁闷不已。只能把两个版本的<font face="Verdana">ValidatorCalloutBehavior.js文件拿过来对比，发现问题出在直接调用behavior的时候，不会进行DOM构造了，因此找到了被封装的用于构造DOM的函数<font face="Verdana">_ensureCallout()</font>执行之，其后调用show()方法，顺利解决问题！<br />
也就是原先的代码改为<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"  alt="" /><span style="color: #000000">ScriptManager.RegisterStartupScript(UpdatePanel1,&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.GetType(),&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">loginFailed</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">window.setTimeout(\</span><span style="color: #000000">"</span><span style="color: #000000">$find(</span><span style="color: #000000">'</span><span style="color: #000000">vceLoginBehavior</span><span style="color: #000000">'</span><span style="color: #000000">)._ensureCallout();$find(</span><span style="color: #000000">'</span><span style="color: #000000">vceLoginBehavior</span><span style="color: #000000">'</span><span style="color: #000000">).show();\</span><span style="color: #000000">"</span><span style="color: #000000">,500);</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">);</span></div>
<br />
另外，新版本果然多了个id，于是添加z-index不用更改源代码了，只需要在css文件中加上一句<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 alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #800000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#vceLoginBehavior_popupTable,#vcePwd_popupTable,#vceUsername_popupTable<br />
<img id="Codehighlighter1_88_124_Open_Image" onclick="this.style.display='none'; Codehighlighter1_88_124_Open_Text.style.display='none'; Codehighlighter1_88_124_Closed_Image.style.display='inline'; Codehighlighter1_88_124_Closed_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_88_124_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_88_124_Closed_Text.style.display='none'; Codehighlighter1_88_124_Open_Image.style.display='inline'; Codehighlighter1_88_124_Open_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_88_124_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 alt="" src="http://www.cnblogs.com/Images/dot.gif" />}</span><span id="Codehighlighter1_88_124_Open_Text"><span style="color: #000000">{</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z-index</span><span style="color: #000000">:</span><span style="color: #0000ff">1000</span><span style="color: #000000">;</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">}</span></span><span style="color: #800000">&nbsp;&nbsp;&nbsp;</span></div>
</font></span></span>上面的例句适用于多个ValidatorCalloutExtender存在的情况，只要写一次就可以了，几个id之间用逗号隔开。behavior的命名规则是这样的：如果已经被指定，则使用指定名称拼上"_popupTable"否则会使用Extender的id拼上"_popupTable"。舒服～
<img src ="http://www.cnblogs.com/doraeimo/aggbug/884482.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43759/" target="_blank">[新闻]Twitter杀手Pownce被收购 两周内关闭服务</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>在vs2008为asp.net ajax添加js智能感知</title><link>http://www.cnblogs.com/doraeimo/archive/2007/08/11/852189.html</link><dc:creator>助燃</dc:creator><author>助燃</author><pubDate>Sat, 11 Aug 2007 15:44:00 GMT</pubDate><guid>http://www.cnblogs.com/doraeimo/archive/2007/08/11/852189.html</guid><wfw:comment>http://www.cnblogs.com/doraeimo/comments/852189.html</wfw:comment><comments>http://www.cnblogs.com/doraeimo/archive/2007/08/11/852189.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/doraeimo/comments/commentRss/852189.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/doraeimo/services/trackbacks/852189.html</trackback:ping><description><![CDATA[今天找了好久，终于搞清楚了，scriptManager控件支持js智能感知，而从其继承的toolkitScriptManager不支持。至少在vs2008b2中是这样。<br />
要在js文件中添加asp.net ajax的js智能感知（与scriptManager控件无关），在js文件的开头添加这样一行即可：<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 alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #008000">//</span><span style="color: #008000">/&lt;reference&nbsp;name="MicrosoftAjax.js"/&gt;</span></div>
若要在aspx文件中添加智能感知，网上很多都说可以在ScriptManager标记内添加
<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 alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">Scripts</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">asp:ScriptReference&nbsp;</span><span style="color: #ff0000">Path</span><span style="color: #0000ff">="<img alt="" src="http://www.cnblogs.com/Images/dot.gif" />"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Scripts</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></div>
不过我基于toolkitScriptManager如此尝试仍然失败了，最后自己把C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\MicrosoftAjaxLibrary\System.Web.Extensions\1.0.61025.0目录下的MicrosoftAjax.js文件拷贝到project的js目录下，然后用传统的js方式引用
<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 alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;src</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">js/MicrosoftAjax.js</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
居然成功地获得了智能感知，只是<font style="color: #ff0000" face="Times New Roman" color="#000000" size="3">这两天写程序的时候发现，这样写会引起莫名其妙的运行时冲突，如果是为了拥有智能感知，那么在运行时需要把这一行注释掉再运行。</font> <br />
<img src ="http://www.cnblogs.com/doraeimo/aggbug/852189.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43758/" target="_blank">[新闻]Live Search新增“即时返现”服务</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>如何修正CalendarExtender在updatePanel中发生错位的问题</title><link>http://www.cnblogs.com/doraeimo/archive/2007/07/24/829997.html</link><dc:creator>助燃</dc:creator><author>助燃</author><pubDate>Tue, 24 Jul 2007 13:52:00 GMT</pubDate><guid>http://www.cnblogs.com/doraeimo/archive/2007/07/24/829997.html</guid><wfw:comment>http://www.cnblogs.com/doraeimo/comments/829997.html</wfw:comment><comments>http://www.cnblogs.com/doraeimo/archive/2007/07/24/829997.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/doraeimo/comments/commentRss/829997.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/doraeimo/services/trackbacks/829997.html</trackback:ping><description><![CDATA[摘要: 最近用到了CalendarExtender，结果不知道为什么发生了错位，如图在Google和百度上找了很久，中文的文章里面似乎只提到了如何本地化（就是显示中文的月份）以及怎么解决被下拉框挡住的问题，谈到格式错位的好像没有，我最后在官方论坛上找到一篇文章，解决了这个问题，就在这儿贴一下～应该也算是个bug吧，可能在0618之后的版本会有补丁。解决的方法是在调用CalendarExtender的页面所&nbsp;&nbsp;<a href='http://www.cnblogs.com/doraeimo/archive/2007/07/24/829997.html'>阅读全文</a><img src ="http://www.cnblogs.com/doraeimo/aggbug/829997.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43753/" target="_blank">[新闻]MySpace CEO：明年广告营收仍会增长</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>在asp.net中使用符合xhtml规范的spliter控件</title><link>http://www.cnblogs.com/doraeimo/archive/2007/07/21/826639.html</link><dc:creator>助燃</dc:creator><author>助燃</author><pubDate>Sat, 21 Jul 2007 08:10:00 GMT</pubDate><guid>http://www.cnblogs.com/doraeimo/archive/2007/07/21/826639.html</guid><wfw:comment>http://www.cnblogs.com/doraeimo/comments/826639.html</wfw:comment><comments>http://www.cnblogs.com/doraeimo/archive/2007/07/21/826639.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/doraeimo/comments/commentRss/826639.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/doraeimo/services/trackbacks/826639.html</trackback:ping><description><![CDATA[摘要: 之前为了使用spliter而尝试了dojo，有一个很严重的问题，其对xhtml规范支持得不好，使用时必须去掉xhtml的声明，这样一来，某些ms ajax control toolkit将无法正常使用。为了寻求更好的方法，我一直没有放弃，最近终于找到了这样一个spliter控件，它能支持xhtml，并且使用起来也很方便，接下来介绍其使用方法。我的布局是经典的左侧treeview，右侧gridvie&nbsp;&nbsp;<a href='http://www.cnblogs.com/doraeimo/archive/2007/07/21/826639.html'>阅读全文</a><img src ="http://www.cnblogs.com/doraeimo/aggbug/826639.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43752/" target="_blank">[新闻]2日科技博客精选：Windows占有率首次跌破90%</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>在Asp.net中使用dojo的splitContainer控件</title><link>http://www.cnblogs.com/doraeimo/archive/2007/01/30/634071.html</link><dc:creator>助燃</dc:creator><author>助燃</author><pubDate>Mon, 29 Jan 2007 17:45:00 GMT</pubDate><guid>http://www.cnblogs.com/doraeimo/archive/2007/01/30/634071.html</guid><wfw:comment>http://www.cnblogs.com/doraeimo/comments/634071.html</wfw:comment><comments>http://www.cnblogs.com/doraeimo/archive/2007/01/30/634071.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cnblogs.com/doraeimo/comments/commentRss/634071.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/doraeimo/services/trackbacks/634071.html</trackback:ping><description><![CDATA[<p>在vs2005为winForm编程，有splitContainer控件可以用；可webForm可就没有这么个东西了。去问了<a href="http://jeffreyzhao.cnblogs.com/" target=_blank>赵老师</a>，他说&#8220;试试dojo的splitContainer&#8221;，于是我查了N多资料捣鼓了1天终于搞定了，下面来总结一下这次收获的经验。效果图：<br><img height=583 alt="" src="http://www.cnblogs.com/images/cnblogs_com/doraeimo/07013001.jpg" width=739 border=0></p>
<h3>如何使用dojo中的某个控件</h3>
<ol>
    <li>&nbsp;去<a href="http://dojotoolkit.org/" target=_blank>官方网站</a>下载最新版本的dojo，我用的是0.4.1的。
    <li>&nbsp;将其解压缩后放在项目所在目录下的js目录下
    <li>&nbsp;在网页的&lt;head&gt;标记内，做一次这样的引用，算是让js读取dojo相关的命名空间
    <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: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">script&nbsp;type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">text/javascript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;src</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">js/dojo/dojo.js</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;&lt;/</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span></div>
    <li>&nbsp;紧跟其后，要这样来引用控件相关的类，例如本文中要使用的是splitContainer
    <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: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dojo.require(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">dojo.widget.SplitContainer</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dojo.require(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">dojo.widget.ContentPane</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);</span></div>
    <li>因为dojo是开源的，您可以在dojo\tests\widget目录下找到相应控件的使用方法，并且可以在<a href="http://dojotoolkit.org/api/" target=_blank>这里</a>查找每个方法的说明文档
    <li>根据sample得知，这样写就可以让splitContainer生效，其中<font color=#0000ff>SplitContainer</font><font color=#000000>的</font>orientation决定了其水平方式分栏还是垂直方式分栏，style中的border属性决定了分隔条的风格。而两个<font color=#0000ff>ContentPane</font><font color=#000000>在其内即决定了分两栏，overflow设置为auto决定了在拖动分隔条时左右两侧的内容不会重叠。</font>
    <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">&lt;</span><span style="COLOR: #800000">div&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="SplitContainer1"</span><span style="COLOR: #ff0000">&nbsp;dojoType</span><span style="COLOR: #0000ff">="SplitContainer"</span><span style="COLOR: #ff0000">&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orientation</span><span style="COLOR: #0000ff">="horizontal"</span><span style="COLOR: #ff0000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sizerWidth</span><span style="COLOR: #0000ff">="5"</span><span style="COLOR: #ff0000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;activeSizing</span><span style="COLOR: #0000ff">="false"</span><span style="COLOR: #ff0000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style</span><span style="COLOR: #0000ff">="border:&nbsp;1px&nbsp;solid&nbsp;black;&nbsp;float:&nbsp;left;&nbsp;width:&nbsp;100%;&nbsp;height:&nbsp;100%;"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">div&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="ContentPane1"</span><span style="COLOR: #ff0000">&nbsp;dojoType</span><span style="COLOR: #0000ff">="ContentPane"</span><span style="COLOR: #ff0000">&nbsp;sizeMin</span><span style="COLOR: #0000ff">="20"</span><span style="COLOR: #ff0000">&nbsp;sizeShare</span><span style="COLOR: #0000ff">="20"</span><span style="COLOR: #ff0000">&nbsp;style</span><span style="COLOR: #0000ff">="overflow:auto"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">左侧的内容</span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">&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;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">div&nbsp;&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="ContentPane2"</span><span style="COLOR: #ff0000">&nbsp;&nbsp;dojoType</span><span style="COLOR: #0000ff">="ContentPane"</span><span style="COLOR: #ff0000">&nbsp;sizeMin</span><span style="COLOR: #0000ff">="50"</span><span style="COLOR: #ff0000">&nbsp;sizeShare</span><span style="COLOR: #0000ff">="50"</span><span style="COLOR: #ff0000">&nbsp;&nbsp;style</span><span style="COLOR: #0000ff">="overflow:auto"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">右侧的内容</span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span></div>
    </li>
</ol>
<h3>&nbsp;配合asp.net使用的注意事项</h3>
<ol>
    <li>&nbsp;由于dojo使用的标记不符合xhtml1.0的规范，因此需要去掉webForm开头部分声明的这句话，否则无法使用
    <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: #000000">&lt;!</span><span style="COLOR: #000000">DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span></div>
    <li>考虑到大部分使用这种左右分栏结构的人同时需要收缩一侧的效果，写了如下的代码将其实现，注意调用的时候要这样写onclick="fac(event)"来兼容IE和FF
    <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: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;fac(evt)<br><img id=Codehighlighter1_22_842_Open_Image onclick="this.style.display='none'; Codehighlighter1_22_842_Open_Text.style.display='none'; Codehighlighter1_22_842_Closed_Image.style.display='inline'; Codehighlighter1_22_842_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_22_842_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_22_842_Closed_Text.style.display='none'; Codehighlighter1_22_842_Open_Image.style.display='inline'; Codehighlighter1_22_842_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_22_842_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_22_842_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;evt</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">evt</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">evt:window.event;<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;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;oTarget</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">evt.srcElement</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">evt.target;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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;oTarget.disabled</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">disabled</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">dojo.widget.byId(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SplitContainer1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">).isHide)<br><img id=Codehighlighter1_210_400_Open_Image onclick="this.style.display='none'; Codehighlighter1_210_400_Open_Text.style.display='none'; Codehighlighter1_210_400_Closed_Image.style.display='inline'; Codehighlighter1_210_400_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_210_400_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_210_400_Closed_Text.style.display='none'; Codehighlighter1_210_400_Open_Image.style.display='inline'; Codehighlighter1_210_400_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_210_400_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_210_400_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;&nbsp;&nbsp;&nbsp;&nbsp;dojo.widget.byId(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SplitContainer1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">).removeChild(dojo.widget.byId(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ContentPane1</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dojo.widget.byId(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SplitContainer1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">).isHide</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">true</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oTarget.value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_419_811_Open_Image onclick="this.style.display='none'; Codehighlighter1_419_811_Open_Text.style.display='none'; Codehighlighter1_419_811_Closed_Image.style.display='inline'; Codehighlighter1_419_811_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_419_811_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_419_811_Closed_Text.style.display='none'; Codehighlighter1_419_811_Open_Image.style.display='inline'; Codehighlighter1_419_811_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_419_811_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_419_811_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;&nbsp;&nbsp;&nbsp;&nbsp;dojo.widget.byId(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SplitContainer1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">).removeChild(dojo.widget.byId(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ContentPane2</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dojo.widget.byId(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SplitContainer1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">).addChild(dojo.widget.byId(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ContentPane1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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;&nbsp;&nbsp;&nbsp;&nbsp;dojo.widget.byId(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SplitContainer1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">).addChild(dojo.widget.byId(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ContentPane2</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dojo.widget.byId(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SplitContainer1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">).isHide</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oTarget.value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;oTarget.disabled</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
    <li>若配合msAjax控件一同使用，例如要用到updatePanel时，不要把整个splitContainer都放在一个updatePanel中，应尽量分几栏放几个，否则在回调之后，页面上的div标签的class属性都会消失得无影无踪，造成dojo控件失效。
    <li><span style="COLOR: red">去掉开头xhtml的声明之后会有产生一个并发症，某些ajax control toolkit的控件将不正常！</span></li>
</ol>
<img src ="http://www.cnblogs.com/doraeimo/aggbug/634071.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43751/" 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>为gridview“删除”列添加确认对话框</title><link>http://www.cnblogs.com/doraeimo/archive/2007/01/01/609344.html</link><dc:creator>助燃</dc:creator><author>助燃</author><pubDate>Sun, 31 Dec 2006 16:47:00 GMT</pubDate><guid>http://www.cnblogs.com/doraeimo/archive/2007/01/01/609344.html</guid><wfw:comment>http://www.cnblogs.com/doraeimo/comments/609344.html</wfw:comment><comments>http://www.cnblogs.com/doraeimo/archive/2007/01/01/609344.html#Feedback</comments><slash:comments>48</slash:comments><wfw:commentRss>http://www.cnblogs.com/doraeimo/comments/commentRss/609344.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/doraeimo/services/trackbacks/609344.html</trackback:ping><description><![CDATA[<p>如何为gridview控件里的&#8220;删除&#8221;列添加一个确认对话框？网上众说纷纭，大致见到了三种解决方案，现归纳如下：<br />
1、继承Web.IO里的button控件，为其实现一个IPostback的接口用于回调，具体代码之复杂，只有作者自己想体会吧&#8230;&#8230;<br />
2、在gridview的RowDataBound事件中，遍历所有子控件，若属于LinkButton类，且CommandName为&#8220;Delete&#8221;，就调用其Atributes.Add方法，添加一个onclick事件内含confirm语句，即</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"  alt="" /><span style="color: #000000">lb.Attributes.Add(</span><span style="color: #000000">"</span><span style="color: #000000">onclick</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">return&nbsp;confirm('您真的要删除此行吗？')</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
这种做法效率低下而且代码十分不雅。<br />
<p>3、<span style="color: red">目前已知的最简洁的方法</span>，如图，在删除按钮的那一列属性里面，把DeleteText属性设为</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"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">div&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">de</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">JavaScript:return&nbsp;confirm('确定删除吗？')</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">删除</span><span style="color: #000000">&lt;/</span><span style="color: #000000">div</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span></div>
<p>这个太强了，赞一个。<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/doraeimo/onDelete.jpg" border="0"  alt="" /><br />
可问题是，.net输出的html代码如下：</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"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView1','Delete$0')"</span><span style="color: #ff0000">&nbsp;style</span><span style="color: #0000ff">="color:#4A3C8C;"</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">="de"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="JavaScript:return&nbsp;confirm('确定删除吗？')"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">删除</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span></div>
为什么内层&lt;div&gt;的onclick事件所返回的bool值能影响到外层&lt;a&gt;标签的的语句是否被执行呢？<br />
仔细想了想，以前用asp直接写的删除标签是这个样子的：<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"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="deleteUser.asp?id=xxx"</span><span style="color: #ff0000">&nbsp;&nbsp;onclick</span><span style="color: #0000ff">="return&nbsp;confirm('确定删除吗？')"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">删除</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span></div>
也就是说，onclick事件接受一个bool值，其决定了click事件是否被触发。若click事件没有被触发，href内含的跳转动作就不会生效。同理，之前的那段代码中，&lt;div&gt;在&lt;a&gt;中，只有先触发&lt;div&gt;的click事件，&lt;a&gt;的跳转动作才会生效。而我们在&lt;div&gt;的onclick事件中若选择为其赋值false，随即取消了&lt;div&gt;的click事件，也同时取消了&lt;a&gt;的跳转。 <br />
<br />
之后，新的问题又来了。如果我们的CommandField中ButtonType是Button的话，这段代码就失效了。我想了下，可以通过将其转换为模板列的方式来解决。<br />
先将该字段转换成模板，然后编辑这个模板列，选中用于删除的Button，将其onClientClick属性设为<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"  alt="" /><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;confirm('您确认删除要删除么？')</span></div>
即可。 <br />
<img height="602" alt="" src="http://www.cnblogs.com/images/cnblogs_com/doraeimo/aa.JPG" width="316" border="0" /> 
<img src ="http://www.cnblogs.com/doraeimo/aggbug/609344.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43750/" target="_blank">[新闻]浏览器大战：Firefox首超20％ IE跌破70％</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>告别06，喜迎07</title><link>http://www.cnblogs.com/doraeimo/archive/2006/12/31/609306.html</link><dc:creator>助燃</dc:creator><author>助燃</author><pubDate>Sun, 31 Dec 2006 15:37:00 GMT</pubDate><guid>http://www.cnblogs.com/doraeimo/archive/2006/12/31/609306.html</guid><wfw:comment>http://www.cnblogs.com/doraeimo/comments/609306.html</wfw:comment><comments>http://www.cnblogs.com/doraeimo/archive/2006/12/31/609306.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/doraeimo/comments/commentRss/609306.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/doraeimo/services/trackbacks/609306.html</trackback:ping><description><![CDATA[终于在cnblogs里安了个窝，本来已经有两处窝了，不过看上了这儿贴代码的功能，所以就赶在06年的最后一刻搬进来，当作是给自己的新年礼物吧<img src="http://www.cnblogs.com/CuteSoft_Client/CuteEditor/images/emnote.gif" align=absMiddle border=0><br>以前两处住所贴了代码浏览器解析起来就不正常了<img src="http://www.cnblogs.com/CuteSoft_Client/CuteEditor/images/emunlove.gif" align=absMiddle border=0><br>但愿新的一年里，我能在这儿不断提升.net平台上的功力，记录下学习过程中的点点滴滴与各位分享。
<img src ="http://www.cnblogs.com/doraeimo/aggbug/609306.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43749/" target="_blank">[新闻]Google Chrome 0.4.154.29 Beta 发布并透露Chrome扩展计划</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>