﻿<?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>博客园-xBlues</title><link>http://www.cnblogs.com/xblues/</link><description>My simple life in Shanghai</description><language>zh-cn</language><lastBuildDate>Thu, 04 Dec 2008 16:48:58 GMT</lastBuildDate><pubDate>Thu, 04 Dec 2008 16:48:58 GMT</pubDate><ttl>60</ttl><item><title>讨论用LINQ如何查重以及用纵横表显示数据</title><link>http://www.cnblogs.com/xblues/archive/2008/08/21/1273362.html</link><dc:creator>Blues</dc:creator><author>Blues</author><pubDate>Thu, 21 Aug 2008 08:53:00 GMT</pubDate><guid>http://www.cnblogs.com/xblues/archive/2008/08/21/1273362.html</guid><wfw:comment>http://www.cnblogs.com/xblues/comments/1273362.html</wfw:comment><comments>http://www.cnblogs.com/xblues/archive/2008/08/21/1273362.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/xblues/comments/commentRss/1273362.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xblues/services/trackbacks/1273362.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p style="font-size: 24pt;">问题和要求如下：</p>
<p>&nbsp;</p>
<p>&nbsp;有数据表如下： <br />
</p>
<p> </p>
<table style="border-collapse: collapse; width: 240pt;" border="1" cellpadding="0" cellspacing="0" width="320">
    <col style="width: 48pt;" span="5" width="64">
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt; width: 48pt;" width="64" height="20">ID</td>
        <td style="width: 48pt;" width="64">Owner</td>
        <td style="width: 48pt;" width="64">Resource</td>
        <td style="width: 48pt;" width="64">OrderID</td>
        <td style="width: 48pt;" width="64">Quotation</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">1</td>
        <td>Jack</td>
        <td>China</td>
        <td align="right">363</td>
        <td align="right">45</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">2</td>
        <td>Jack</td>
        <td>China</td>
        <td align="right">363</td>
        <td align="right">45</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">3</td>
        <td>Mike</td>
        <td>Japan</td>
        <td align="right">678</td>
        <td align="right">23</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">4</td>
        <td>Mike</td>
        <td>Japan</td>
        <td align="right">678</td>
        <td align="right">23</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">5</td>
        <td>Mike</td>
        <td>Japan</td>
        <td align="right">678</td>
        <td align="right">23</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">6</td>
        <td>John</td>
        <td>China</td>
        <td align="right">893</td>
        <td align="right">12</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">7</td>
        <td>John</td>
        <td>Korea</td>
        <td align="right">453</td>
        <td align="right">11</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">8</td>
        <td>Mike</td>
        <td>China</td>
        <td align="right">234</td>
        <td align="right">78</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">9</td>
        <td>Jack</td>
        <td>China</td>
        <td align="right">676</td>
        <td align="right">33</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">10</td>
        <td>Mike</td>
        <td>Japan</td>
        <td align="right">454</td>
        <td align="right">25</td>
    </tr>
</table>
<br />
<p>首先根据查重Owner, Resource, OrderID, Quotation，去掉重复订单（但是需要保留其中任意一个ID号） <br />
</p>
<p> </p>
<table style="border-collapse: collapse; width: 240pt;" border="1" cellpadding="0" cellspacing="0" width="320">
    <col style="width: 48pt;" span="5" width="64">
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt; width: 48pt;" width="64" height="20">ID</td>
        <td style="width: 48pt;" width="64">Owner</td>
        <td style="width: 48pt;" width="64">Resource</td>
        <td style="width: 48pt;" width="64">OrderID</td>
        <td style="width: 48pt;" width="64">Quotation</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">1</td>
        <td>Jack</td>
        <td>China</td>
        <td align="right">363</td>
        <td align="right">45</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">3</td>
        <td>Mike</td>
        <td>Japan</td>
        <td align="right">678</td>
        <td align="right">23</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">6</td>
        <td>John</td>
        <td>China</td>
        <td align="right">893</td>
        <td align="right">12</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">7</td>
        <td>John</td>
        <td>Korea</td>
        <td align="right">453</td>
        <td align="right">11</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">8</td>
        <td>Mike</td>
        <td>China</td>
        <td align="right">234</td>
        <td align="right">78</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">9</td>
        <td>Jack</td>
        <td>China</td>
        <td align="right">676</td>
        <td align="right">33</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" align="right" height="20">10</td>
        <td>Mike</td>
        <td>Japan</td>
        <td align="right">454</td>
        <td align="right">25</td>
    </tr>
</table>
<p>
</p>
<p>&nbsp;</p>
<p>然后用二重分组Owner, Resource，来分组统计Quotation合计数量。用纵横表显示结果，左边第一行是人名，顶部行显示来源。 <br />
</p>
<p> </p>
<table style="border-collapse: collapse; width: 192pt;" border="2" cellpadding="0" cellspacing="0" width="256">
    <col style="width: 48pt;" span="4" width="64">
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt; width: 48pt;" width="64" height="20">&nbsp;</td>
        <td style="width: 48pt;" width="64">China</td>
        <td style="width: 48pt;" width="64">Korea</td>
        <td style="width: 48pt;" width="64">Japan</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" height="20">Jack</td>
        <td align="right">78</td>
        <td align="right">0</td>
        <td align="right">0</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" height="20">John</td>
        <td align="right">12</td>
        <td align="right">11</td>
        <td align="right">0</td>
    </tr>
    <tr style="height: 15pt;" height="20">
        <td style="height: 15pt;" height="20">Mike</td>
        <td align="right">78</td>
        <td align="right">0</td>
        <td align="right">48</td>
    </tr>
</table>
<p>&nbsp;</p>
<p style="color: red;">这个问题折磨了我好几天还是没有解决，我下面的解决方法属于变通的方法，欢迎大家批评指正，也请高手发表你的改进方法。<br />
</p>
<p>&nbsp;</p>
<p>查重，Linq使用Distinct方法，但是这个Distinct方法实际上不支持任何参数。<br />
</p>
<p>&nbsp;</p>
<p>var result = (from r in SampleTable</p>
<p>select new { r.Owner, r.Resource, r.OrderID, r.Quotation}</p>
<p>).Distinct().ToList();</p>
<p>&nbsp; <br />
</p>
<p> 这样得到了出去重复订单的记录集，可是并不符合题目要求，因为题目要求保留重复记录的任意一个ID。</p>
<p>所以再用一遍Linq的join功能，的Join功能把ID按条件匹配出来。这样我就用了两步，不知道有没有方法可以一步完成。</p>
<p>&nbsp;</p>
<p>具体写法，等我再看看。到目前为止其实是为了完成第二个要求做了准备工作，查重了。<br />
</p>
<p>我开始使用嵌套group by写了一个linq语句，</p>
<p>&nbsp;</p>
<p>var result2 = from s in reslut<br />
</p>
<p>group s by s.Owner into groupA</p>
<p>select new {<br />
</p>
<p>Name = groupA.Key,</p>
<p>NewData = from t in groupA<br />
</p>
<p>group t by t.Resource into groupB</p>
<p>select new {<br />
</p>
<p>Resource = groupB.Key</p>
<p>Amount = groupB.Quatation.Sum()}<br />
</p>
<p>}</p>
<p> <br />
</p>
<p>通过两个group by 的嵌套生成了一个嵌套结构的数据集，可以采用主总表的方式显示到页面。</p>
<p><br />
</p>
<p>具体方法可以采用两个ListView 嵌套，在外层的ListView的datasource里指定为result2，<br />
</p>
<p>增加一个数据绑定的时候变化内层ListView的数据源的事件，微软的帮助也是这样写的，原理上可以实现，但是已经看得我头大了！</p>
<p>&nbsp;</p>
<p>又google了一下，发现原来我不需要用这个嵌套Group by的，其实我先用一个group by，查询出来一个数据集，使用ListView显示，然后再外层ListView里面定义一个Group By，就等于把内嵌的group by写到了前端界面控件里了，这样内嵌的ListView会自然切换数据集。这个方法看似简单。缺点是，使用了前端空间完成了嵌套逻辑。具体可以参考，Matt Berseth的博客文章， <br />
</p>
<p>http://mattberseth.com/blog/2008/01/building_a_grouping_grid_with.html <br />
</p>
<p>&nbsp;</p>
<p>问题又来了，我的要求是纵横表，可是这样一天套等于一个纵表内，嵌套的表还是纵向排列的。找了好多资料都不得其解。</p>
<p>记得原来，我用SQL语句只要用多个字段group by一下，就可以了，现在使用linq却要嵌套group by才行！<br />
</p>
<p>而且查询出来的嵌套结构的结构显示起来极其不方便，简直是太难了。<br />
</p>
<p>&nbsp;</p>
<p>原来用SQL我可以这样写：</p>
<p>select Owner, Resource, Sum(Quotation) from Table</p>
<p>groupby Owner, Resource<br />
</p>
<p>&nbsp;</p>
<p>查询出来的结果我可以直接显示，因为不是嵌套结构。</p>
<p>即使是嵌套结构的查询结果，按着传统的ASP方法，或者新的MVC方法，我都可以直接用&lt;%=%&gt;输出，现在表单方式的ASP.NET我却必须要找一个页面控件，太复杂了。<br />
</p>
<p>&nbsp;</p>
<p>不行，接着找，看看Linq是不是可以支持多列groupby。终于找到了这个澳大利亚人的博客，</p>
<p>http://ddkonline.blogspot.com/2008/04/linq-group-by-syntax-for-grouping-on.html</p>
<p>可以这样写， </p>
<p>var result3 = from c in Table</p>
<p>group c by new {c.Owner, c.Resource} into groupC<br />
</p>
<p>select new {</p>
<p>Name = groupC.Key.Owner,<br />
</p>
<p>Country = groupC.Key.Resource</p>
<p>Amount = groupC.Count()<br />
</p>
<p>}</p>
<p>&nbsp;</p>
<p>结果显示出来的还不是纵横表，但是方法比较简单。<br />
</p>
<p>有高手看了，发表一下你的意见，看看我是不是没走对方向？ <br />
</p>
<p><br />
</p><img src ="http://www.cnblogs.com/xblues/aggbug/1273362.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43791/" target="_blank">[新闻]雅虎新任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>LINQ迸发访问错误提示：DataReader associated with this Command which must be closed first</title><link>http://www.cnblogs.com/xblues/archive/2008/08/01/1258311.html</link><dc:creator>Blues</dc:creator><author>Blues</author><pubDate>Fri, 01 Aug 2008 08:38:00 GMT</pubDate><guid>http://www.cnblogs.com/xblues/archive/2008/08/01/1258311.html</guid><wfw:comment>http://www.cnblogs.com/xblues/comments/1258311.html</wfw:comment><comments>http://www.cnblogs.com/xblues/archive/2008/08/01/1258311.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/xblues/comments/commentRss/1258311.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xblues/services/trackbacks/1258311.html</trackback:ping><description><![CDATA[摘要: 我有一个应用是采用LINQ生成的DBML写的，同时执行两种操作的时候出现迸发错误。

操作一：读表
操作二：写表（时间较长的操作，大约持续1分钟）
 
在web.config中增加下面的参数可以消除这种错误。
MultipleActiveResultSets=true"

我照这样做了，写表的同时，读表不出错了。可是写表的操作却开始一直报错，看来还是没有解决问题。还有一种解释，我注意到我的代码的写法，可能是这里出错了，为了不是每次表操作都去建立一个新的DBDataContext实例，我就统一建立了一个静态实力，看上面的说法，这样不行。看来需要给每一个操作定义一个单独的实例。

这样子不行：  public static MyDBDataContext db = new myDBDataContext(); 
那看来得每个操作页面定义一个对象实例，操作完成以后再关掉，你有什么好的办法么？&nbsp;&nbsp;<a href='http://www.cnblogs.com/xblues/archive/2008/08/01/1258311.html'>阅读全文</a><img src ="http://www.cnblogs.com/xblues/aggbug/1258311.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43788/" 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>如何在ASP.NET应用中集成Windows域帐户来进行权限控制</title><link>http://www.cnblogs.com/xblues/archive/2008/07/31/1257160.html</link><dc:creator>Blues</dc:creator><author>Blues</author><pubDate>Thu, 31 Jul 2008 04:03:00 GMT</pubDate><guid>http://www.cnblogs.com/xblues/archive/2008/07/31/1257160.html</guid><wfw:comment>http://www.cnblogs.com/xblues/comments/1257160.html</wfw:comment><comments>http://www.cnblogs.com/xblues/archive/2008/07/31/1257160.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.cnblogs.com/xblues/comments/commentRss/1257160.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xblues/services/trackbacks/1257160.html</trackback:ping><description><![CDATA[<p>如何在ASP.NET应用中集成Windows域帐户来进行权限控制<br />
</p>
<p>&nbsp;</p>
<p>企业应用程序采用域用户来代替独立的用户管理模块的好处很多。</p>
<ul>
    <li>程序本身不需要单独编写用户帐号管理模块</li>
    <li>与域用户集成，用户不需要单独记忆用户名口令，可以实现无缝登录<br />
    </li>
    <li>采用域用户方案安全性提升，认证时口令不在网上传输，域用户安全级别</li>
    <li>其他好处多多<br />
    </li>
</ul>
<p> </p>
<p><strong>首先需要配置IIS：</strong></p>
<p>为你的应用单独建立一个web虚拟目录，右键选择属性里的目录安全，权限与访问控制，把&#8220;打开匿名访问&#8221;不选，仅仅选择&#8220;集成Windows权限认证&#8221;，别的都不要选，确定。<br />
</p>
<p>&nbsp;</p>
<p>集成域用户来控制用户访问的途经有两种，一种是利用NTFS权限控制表，缺点是每次转移应用之后，需要逐个设置目录访问权限。另外一种是通过配置web.config文件，通过URL来控制，好处是直接修改配置文件就可以了，不需要每次发布应用时变换一次目录就修改一次。下面我就主要介绍一个后者。<br />
</p>
<p>&nbsp;</p>
<p><strong>划应用目录树：</strong></p>
<p>根目录的权限设置覆盖子目录的设置，把管理页面单独放在一个路径下，比如在根目录下设置一个admin子目录管理页面都放在这下面；再设置一个sales的子目录，只有销售的同志可以访问，user则是任何人都可以访问。举例如下： <br />
</p>
<p>\root\ <br />
</p>
<p>\root\admin</p>
<p>\root\sales<br />
</p>
<p>\root\user <br />
</p>
<p><br />
</p>
<p>&nbsp;</p>
<p><strong>修改配置文件：<br />
</strong></p>
<p>在需要进行权限配置的目录下面，分别建立web.config文件。root下面肯定需要一个配置文件了，在本例中由于admin路径下放置了管理页面，因此我在admin下面也建立了一个web.config配置文件。</p>
<p>&nbsp;</p>
<p>root下的web.config配置文件的和权限相关的内容如下： <br />
</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">configuration</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">connectionStrings</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">add&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="APPConnectionString"</span><span style="color: #ff0000;">&nbsp;connectionString</span><span style="color: #0000ff;">="Data&nbsp;Source=MachineName;Initial&nbsp;Catalog=DatabaseName;Integrated&nbsp;Security=SSPI"</span><span style="color: #ff0000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/connectionStrings</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authentication&nbsp;</span><span style="color: #ff0000;">mode</span><span style="color: #0000ff;">="Windows"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&lt;identity&nbsp;impersonate="true"&nbsp;userName="UserName"&nbsp;password="PassWord"&nbsp;/&gt;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">identity&nbsp;</span><span style="color: #ff0000;">impersonate</span><span style="color: #0000ff;">="true"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">allow&nbsp;</span><span style="color: #ff0000;">roles</span><span style="color: #0000ff;">="UserName,domainname\username1,domainname\username2,domainname\usergroup1"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">deny&nbsp;</span><span style="color: #ff0000;">users</span><span style="color: #0000ff;">="*"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">configuration</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span></div>
<p>&nbsp;</p>
<p>admin目录下也增加一个web.config文件 （sales目录下配置文件类似，就是允许sales的账户访问该目录即可）<br />
</p>
<p> </p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">configuration</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">allow&nbsp;</span><span style="color: #ff0000;">roles</span><span style="color: #0000ff;">="domainname\username1，domainname\usergroup1"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">deny&nbsp;</span><span style="color: #ff0000;">users</span><span style="color: #0000ff;">="*"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">configuration</span><span style="color: #0000ff;">&gt;</span></div>
<p>&nbsp;</p>
<p>首先，先解释一下admin下面的这个配置文件，我允许domainname\username1访问这个管理目录，而禁止任何其他的用户来访问这些功能页面。 <br />
</p>
<p>下面，再接是一下root下面的这个配置文件，我增加了一个链接数据库的字符串，采用的是MS推荐的安全连接，没有使用sa之类的SQL管理的账户。<br />
</p>
<p>&nbsp;</p>
<p><span style="background-color: yellow;">authentication mode="Windows"</span> 的意思是集成域用户，这句话是打开应用支持域用户的关键。</p>
<p><span style="background-color: yellow;">allow roles=",,,"</span> 列表里面我规定了可以访问root的用户，每个用户之间用逗号分隔，这里可以指定服务器本机用户，也可以指定域用户，或者域用户组<br />
</p>
<p><span style="background-color: yellow;">deny users=",,," </span>列表里我规定了禁止所有用户访问（允许列表里的用户除外）</p>
<p>以上这两个类表可以使用的通配符有 ? 匿名用户， * 所有用户<br />
</p>
<p>&nbsp;</p>
<p>到目前为止，其实就已经算是完成了，就这么简单。</p>
<p>&nbsp;</p>
<p><strong>用户代理</strong></p>
<p>Impersonate，除非有特殊要求，比如在同一个服务器上运行同一个应用，需要区别不同公司的操作，可以分别建立应用程序池，采用不同代理帐号，来区分访问，否则，这个代理账户是不需要的（而且会引起性能下降），这个代理用户现象缺省是关闭的。 <br />
</p>
<p>&nbsp;</p>
<p>如果不采用用户代理，每次用户登录应用的时候，系统自动匹配当前用户登录所使用的客户端的域用户名</p>
<p>如果采用用户代理，就是指定一个代理用户，代理所有表现曾用户的一切操作请求。</p>
<p>&nbsp;</p>
<p>可以用下面的配置指定固定的代理用户 <br />
</p>
<p style="background-color: yellow;"><span style="color: #008000;">&lt;identity&nbsp;impersonate="true"&nbsp;userName="UserName"&nbsp;password="PassWord"&nbsp;/&gt;&nbsp;</span> <br />
</p>
或者采用下面的设置，指定应用程序池的用户作为代理<br />
<p><span style="color: #008000; background-color: yellow;">&lt;identity&nbsp;impersonate="true" /&gt;</span></p>
<p>&nbsp;</p>
<p>缺省情况下，这个用户代理是关闭的，缺点也不少，MS不推荐使用，所以，你就跳过这部分吧。 <br />
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>下面说一下如何采用信任账户去链接SQL数据库 </strong><br />
</p>
<p>这一部分，实际上用的很广泛，MSDN有专门的一篇来讲解这个，你可以参考，</p>
<p>http://msdn.microsoft.com/en-us/library/ms998292.aspx  </p>
<p>&nbsp;</p>
<p>如果使用了sa或者其他SQL管理的用户帐号，那实际上我就把口令写到了配置文件里面，这样安全性不好。当然微软也提供了补救办法，就是可以使用一个命令行加密工具把配置文件加密成密文，总之是不好了，那怎么使用信任连接连接数据库呢？配置文件照着下面写， <br />
</p>
<p>&lt;connectionStrings&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;add name="ConnectionStringName" connectionString="Data Source=ServerName;Initial Catalog=DatabaseName;Integrated Security=SSPI" providerName="System.Data.SqlClient" /&gt;<br />
&lt;/connectionStrings&gt; </p>
<br />
<p>下一步是怎么配置这个信任的用户的权限，这个账户必须同时具有运行IIS应用的权限，和访问SQL的权限。一般可以指定一个特定的新建用户，当然，为了简化配置，如果web服务器和SQL服务器都在一台机器上，也可以使用预置好的服务帐户NT AUTHORITY\NETWORK SERVICE，否则你就需要建立一个域用户了，格式可以是domainname\webmachinename。然后就是分配给这个用户访问SQL的权限。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>给应用指定运行用户</strong></p>
<p>建立一个新的应用程序池，右键选择属性，identity用户表示里面，把匿名用户去掉，在下面选择用户，可以选择你上面新建的用户，也可以使用NT AUTHORITY"NETWORK SERVICE。</p>
<p><br />
</p>
<p><br />
</p>
<p><strong>在代码中调用域用户权限</strong><br />
&nbsp;在代码使用如下代码来查看访问者域用户身份。<br />
</p>
<p> </p>
<span style="background-color: yellow;">
<p>Page.User.Identity.Name</p>
</span>
<p><span style="background-color: yellow;">
<p>Page.User.Identity.IsAuthenticated</p>
</span><span style="background-color: yellow;">
<p><br />
</p>
<p>增加引用using System.Security.Principal; </p>
</span></p>
<p><span style="background-color: yellow;">
</span></p>
<p>&nbsp;</p>
<p>使用如下代码查看采用信任链接 方式同一访问SQL的用户身份，也就是你在应用程序池里指定的那个用户名。<br />
</p>
<p>WindowsIdentity.GetCurrent().Name <br />
</p>
<p><span style="background-color: yellow;">
</span></p>
<p>&nbsp;</p>
<p>如有错误，欢迎批评指正。</p>
<p>&nbsp;</p>
<p>下面图标说明了应用层采用Windows用户进行安全认证，应用层和数据服务器之间则采用信任链接统一访问的原理。</p>
<p><img alt="" src="http://i.msdn.microsoft.com/ms998292.f01paght00000801%28en-us,MSDN.10%29.gif" width="417" height="303" />&nbsp;</p>
<p>&nbsp;</p>
<p><strong><br />
</strong></p><img src ="http://www.cnblogs.com/xblues/aggbug/1257160.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43787/" target="_blank">[新闻]微软高管解密Windows7内幕：大量功能中国造</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>如何使用ExtJs为表格单元格增加Tooltips(QuickTips)浮动信息</title><link>http://www.cnblogs.com/xblues/archive/2008/07/23/1249150.html</link><dc:creator>Blues</dc:creator><author>Blues</author><pubDate>Tue, 22 Jul 2008 20:54:00 GMT</pubDate><guid>http://www.cnblogs.com/xblues/archive/2008/07/23/1249150.html</guid><wfw:comment>http://www.cnblogs.com/xblues/comments/1249150.html</wfw:comment><comments>http://www.cnblogs.com/xblues/archive/2008/07/23/1249150.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/xblues/comments/commentRss/1249150.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xblues/services/trackbacks/1249150.html</trackback:ping><description><![CDATA[<p>ExtJs证实了其十分强大的界面定制能力，其中的提供的ToolTips功能比HTML里的如下语句定制性更强，完全可以代替如下功能</p>
<p>&lt;a href="http://dfdfd" title="TIPS"&gt;Some Text&lt;/a&gt; <br />
</p>
<p>&nbsp;</p>
<p>ExtJs是通过Ext.ToolTip和Ext.QuickTips两个组件来实现浮动提示功能的，其中Ext.ToolTip的定制功能很强，具体效果可以<a title="ExtJs ToolTips Demo" href="http://www.extjs.com/deploy/dev/examples/simple-widgets/qtips.html">参考</a>，具体配置代码如下，</p>
<div class="cnblogs_code"><img id="Code_Closed_Image_044356" onclick="this.style.display='none'; Code_Closed_Text_044356.style.display='none'; Code_Open_Image_044356.style.display='inline'; Code_Open_Text_044356.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" height="16"><img id="Code_Open_Image_044356" style="display: none;" onclick="this.style.display='none'; Code_Open_Text_044356.style.display='none'; Code_Closed_Image_044356.style.display='inline'; Code_Closed_Text_044356.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" height="16"><span id="Code_Closed_Text_044356" style="border: 1px solid #808080; background-color: #ffffff;">ToolTip配置代码</span><span id="Code_Open_Text_044356" style="display: none;"><br />
<!--<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_123_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_0_123_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_0_123_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_0_123_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_0_123_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_0_123_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_0_123_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_0_123_Open_Text').style.display='inline';" align="top"><span id="Codehighlighter1_0_123_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;">/**/</span><span id="Codehighlighter1_0_123_Open_Text"><span style="color: #008000;">/*</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" alt="" align="top" />&nbsp;*&nbsp;Ext&nbsp;JS&nbsp;Library&nbsp;2.1<br />
</span><span style="color: #008080;">&nbsp;3</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;*&nbsp;Copyright(c)&nbsp;2006-2008,&nbsp;Ext&nbsp;JS,&nbsp;LLC.<br />
</span><span style="color: #008080;">&nbsp;4</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;*&nbsp;licensing@extjs.com<br />
</span><span style="color: #008080;">&nbsp;5</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">&nbsp;6</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;*&nbsp;http://extjs.com/license<br />
</span><span style="color: #008080;">&nbsp;7</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />&nbsp;</span><span style="color: #008000;">*/</span></span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
</span><span style="color: #008080;">&nbsp;9</span><span style="color: #000000;"><img id="Codehighlighter1_147_859_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_147_859_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_147_859_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_147_859_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_147_859_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_147_859_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_147_859_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_147_859_Open_Text').style.display='inline';" align="top">Ext.onReady(</span><span style="color: #0000ff;">function</span><span style="color: #000000;">()</span><span id="Codehighlighter1_147_859_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_147_859_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">10</span><span style="color: #000000;"><img id="Codehighlighter1_169_238_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_169_238_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_169_238_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_169_238_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_169_238_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_169_238_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_169_238_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_169_238_Open_Text').style.display='inline';" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Ext.ToolTip(</span><span id="Codehighlighter1_169_238_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_169_238_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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">tip1</span><span style="color: #000000;">'</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">12</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;html:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">A&nbsp;very&nbsp;simple&nbsp;tooltip</span><span style="color: #000000;">'</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">13</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">14</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: #008080;">15</span><span style="color: #000000;"><img id="Codehighlighter1_262_417_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_262_417_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_262_417_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_262_417_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_262_417_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_262_417_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_262_417_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_262_417_Open_Text').style.display='inline';" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Ext.ToolTip(</span><span id="Codehighlighter1_262_417_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_262_417_Open_Text"><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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">ajax-tip</span><span style="color: #000000;">'</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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width:&nbsp;</span><span style="color: #000000;">200</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">18</span><span style="color: #000000;"><img id="Codehighlighter1_330_352_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_330_352_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_330_352_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_330_352_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_330_352_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_330_352_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_330_352_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_330_352_Open_Text').style.display='inline';" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autoLoad:&nbsp;</span><span id="Codehighlighter1_330_352_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_330_352_Open_Text"><span style="color: #000000;">{url:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">ajax-tip.html</span><span style="color: #000000;">'</span><span style="color: #000000;">}</span></span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">19</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dismissDelay:&nbsp;</span><span style="color: #000000;">15000</span><span style="color: #000000;">&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;auto&nbsp;hide&nbsp;after&nbsp;15&nbsp;seconds</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">20</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">21</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: #008080;">22</span><span style="color: #000000;"><img id="Codehighlighter1_441_616_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_441_616_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_441_616_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_441_616_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_441_616_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_441_616_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_441_616_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_441_616_Open_Text').style.display='inline';" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Ext.ToolTip(</span><span id="Codehighlighter1_441_616_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_441_616_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">23</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">tip2</span><span style="color: #000000;">'</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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;html:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">Click&nbsp;the&nbsp;X&nbsp;to&nbsp;close&nbsp;me</span><span style="color: #000000;">'</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">25</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">My&nbsp;Tip&nbsp;Title</span><span style="color: #000000;">'</span><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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autoHide:&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">27</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;closable:&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">28</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draggable:</span><span style="color: #0000ff;">true</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">29</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></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" alt="" align="top" /><br />
</span><span style="color: #008080;">31</span><span style="color: #000000;"><img id="Codehighlighter1_640_826_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_640_826_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_640_826_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_640_826_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_640_826_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_640_826_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_640_826_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_640_826_Open_Text').style.display='inline';" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Ext.ToolTip(</span><span id="Codehighlighter1_640_826_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_640_826_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">32</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">track-tip</span><span style="color: #000000;">'</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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">Mouse&nbsp;Track</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/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width:</span><span style="color: #000000;">200</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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;html:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">This&nbsp;tip&nbsp;will&nbsp;follow&nbsp;the&nbsp;mouse&nbsp;while&nbsp;it&nbsp;is&nbsp;over&nbsp;the&nbsp;element</span><span style="color: #000000;">'</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">36</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trackMouse:</span><span style="color: #0000ff;">true</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">37</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">38</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: #008080;">39</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: #008080;">40</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;Ext.QuickTips.init();<br />
</span><span style="color: #008080;">41</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: #008080;">42</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />}</span></span><span style="color: #000000;">);</span></span></div>
<p> </p>
<p>&nbsp;</p>
<p>但是Ext.ToolTip的缺点也是很明显的，他需要在配置中写入提示内容文本，这样如果想在表格中引用，给表格中的某一列增加浮动提示这种情况就很不方便，代码也会十分混乱。（当然有高手是可以通过函数解决这个问题的，请高手指点）。ExtJs2.0增加了一个扩展组件就是Ext.QuickTips实际上正好解决这个问题，支持在超文本中定义浮动提示的内容，这样用ASP.NET的数据绑定组件引用起来十分方便，界面也比HTML中的那个缺省的样式好看，唯一的缺点是QuickTips的定制没有ToolTip那么灵活，像上面展示的支持拖拽，鼠标点击关闭，AJAX都不好实现，但总比没有强。下面我就说说，这个QuickTips怎么具体配置，<br />
</p>
<p>&nbsp;</p>
<p>首先在header里增加ExtJS的引用<br />
</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">link&nbsp;</span><span style="color: #ff0000;">rel</span><span style="color: #0000ff;">="stylesheet"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="text/css"</span><span style="color: #ff0000;">&nbsp;href</span><span style="color: #0000ff;">="ext-2.1/resources/css/ext-all.css"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">script&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text/javascript"</span><span style="color: #ff0000;">&nbsp;src</span><span style="color: #0000ff;">="ext-2.1/ext-base.js"</span><span style="color: #0000ff;">&gt;</span><span style="background-color: #f5f5f5; color: #000000;">&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">script&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text/javascript"</span><span style="color: #ff0000;">&nbsp;src</span><span style="color: #0000ff;">="ext-2.1/ext-all.js"</span><span style="color: #0000ff;">&gt;</span><span style="background-color: #f5f5f5; color: #000000;">&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span></div>
<p>&nbsp;</p>
<p>然后再在header里对Ext.QuickTips配置</p>
<p>Ext.QuickTips.init(); 是必须的<br />
</p>
<p>Ext.apply(Ext.QuickTips.getQuickTip(),{...}); 是可选的，如果你想使用缺省配置，就完全可以省略掉这一段。<br />
</p>
<ul>
    <li>maxWidth 最大宽度</li>
    <li>minWidth 最小宽度<br />
    </li>
    <li>showDelay 延时显示（毫秒）</li>
    <li>trackMouse 随着鼠标移动 <br />
    </li>
    <li>hideDelay 延时自动隐藏 （缺省为true）<br />
    </li>
    <li>closable 显示关闭图标（但是这个图标显然只是一个样子，鼠标点击不到它！）</li>
    <li>autoHide 自动隐藏 （这个配置没用处，不管是真是假，都自动隐藏，实际需要用下面的dismissDelay来控制）<br />
    </li>
    <li>draggable 支持用鼠标拖动（实际上这个选项也不起作用，因为鼠标根本移动不到这里！）</li>
    <li><strong>dismissDelay 这个才是最有用的选项，否则你完全可以省掉这段Ext.apply的配置。因为缺省情况下这个浮动提示是经过一段时间以后就自动隐藏。只有通过设置这个值为0来关闭自动隐藏浮动提示！</strong><br />
    </li>
</ul>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><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;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />Ext.QuickTips.init();<br />
<img id="Codehighlighter1_93_322_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_93_322_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_93_322_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_93_322_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_93_322_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_93_322_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_93_322_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_93_322_Open_Text').style.display='inline';" align="top">Ext.apply(Ext.QuickTips.getQuickTip(),&nbsp;</span><span id="Codehighlighter1_93_322_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_93_322_Open_Text"><span style="color: #000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">maxWidth:&nbsp;200,</span><span style="color: #008000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">minWidth:&nbsp;100,</span><span style="color: #008000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">showDelay:&nbsp;50,</span><span style="color: #008000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">trackMouse:&nbsp;true,</span><span style="color: #008000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">hideDelay:&nbsp;true,</span><span style="color: #008000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">closable:&nbsp;true,</span><span style="color: #008000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">autoHide:&nbsp;false,</span><span style="color: #008000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #008000;">//</span><span style="color: #008000;">draggable:&nbsp;true,</span><span style="color: #008000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;dismissDelay:&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />}</span></span><span style="color: #000000;">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">/</span><span style="color: #000000;">script&gt;</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span></div>
<p>&nbsp;</p>
<p>&nbsp;最后在body里增加对Ext.QuickTips的引用，qtitile可以视情况而定可以省掉而仅仅保留qtip，在qtip里增加绑定内容。</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="button"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="OK"</span><span style="color: #ff0000;"> <img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />class</span><span style="color: #0000ff;">="tip-target"</span><span style="color: #ff0000;">&nbsp;ext:qtitle</span><span style="color: #0000ff;">="OK&nbsp;Button"</span><span style="color: #ff0000;">&nbsp;ext:qtip</span><span style="color: #0000ff;">="This&nbsp;is&nbsp;a&nbsp;quick&nbsp;tip&nbsp;from&nbsp;markup!"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">input</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">asp:ListView&nbsp;</span><span style="color: #ff0000;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" />&nbsp;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ItemTemplate</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="sample"</span><span style="color: #ff0000;"> <img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />ext:qtitle</span><span style="color: #0000ff;">=</span><span style="color: #0000ff;">'&lt;%#&nbsp;</span><span style="color: #ff0000;">Eval("TipsTitleField")&nbsp;%</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">'</span><span style="color: #ff0000;"> ext:qtip</span><span style="color: #0000ff;">='&lt;%#&nbsp;</span><span style="color: #ff0000;">Eval("TipsField")&nbsp;%</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">'&gt;<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img id="Codehighlighter1_260_282_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_260_282_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_260_282_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_260_282_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_260_282_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_260_282_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_260_282_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_260_282_Open_Text').style.display='inline';" align="top"></span><span style="background-color: #ffff00; color: #000000;">&lt;%</span><span id="Codehighlighter1_260_282_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_260_282_Open_Text"><span style="background-color: #f5f5f5; color: #000000;">#&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff;">Eval</span><span style="background-color: #f5f5f5; color: #000000;">(</span><span style="background-color: #f5f5f5; color: #800000;">"</span><span style="background-color: #f5f5f5; color: #800000;">SampleField</span><span style="background-color: #f5f5f5; color: #800000;">"</span><span style="background-color: #f5f5f5; color: #000000;">)&nbsp;</span></span><span style="background-color: #ffff00; color: #000000;">%&gt;</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ItemTemplate</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">asp:ListView</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"> <br />
</span></div>
<p>&nbsp;</p><img src ="http://www.cnblogs.com/xblues/aggbug/1249150.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43786/" target="_blank">[新闻]Vista SP2 beta 具体更新的清单</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>MSDN上发现了一篇很好的WCF入门教程</title><link>http://www.cnblogs.com/xblues/archive/2008/07/11/1240843.html</link><dc:creator>Blues</dc:creator><author>Blues</author><pubDate>Fri, 11 Jul 2008 07:48:00 GMT</pubDate><guid>http://www.cnblogs.com/xblues/archive/2008/07/11/1240843.html</guid><wfw:comment>http://www.cnblogs.com/xblues/comments/1240843.html</wfw:comment><comments>http://www.cnblogs.com/xblues/archive/2008/07/11/1240843.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://www.cnblogs.com/xblues/comments/commentRss/1240843.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xblues/services/trackbacks/1240843.html</trackback:ping><description><![CDATA[摘要: 看了园子里很多学习WCF的例子，感觉受益匪浅，但是由于每个人学习的侧重点不同，一些很详细的细节例如每一个属性都是用来干什么的，建立不同的项目类型对创建的服务有什么区别等等，都不得而知。终于，在MSDN上发现了一篇入门教程。讲解的十分基本，十分详细，想进到每一个细节，然我彻底了解入门的每一个细节，整个教程结构清晰，代码简洁，讲解细致，值得推荐。每一个细节都包含在两个Program.cs文件中了，你大概看一下就会懂。比院子里大多数教材说得都清晰，特别适合像我一样爱刨根问底的初学者。:)&nbsp;&nbsp;<a href='http://www.cnblogs.com/xblues/archive/2008/07/11/1240843.html'>阅读全文</a><img src ="http://www.cnblogs.com/xblues/aggbug/1240843.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43785/" target="_blank">[新闻]纽约时报：Twitter为何拒绝Facebook收购</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>FileHelper 一个极好的数据文本文件处理类库</title><link>http://www.cnblogs.com/xblues/archive/2008/07/07/1237493.html</link><dc:creator>Blues</dc:creator><author>Blues</author><pubDate>Mon, 07 Jul 2008 06:41:00 GMT</pubDate><guid>http://www.cnblogs.com/xblues/archive/2008/07/07/1237493.html</guid><wfw:comment>http://www.cnblogs.com/xblues/comments/1237493.html</wfw:comment><comments>http://www.cnblogs.com/xblues/archive/2008/07/07/1237493.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.cnblogs.com/xblues/comments/commentRss/1237493.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xblues/services/trackbacks/1237493.html</trackback:ping><description><![CDATA[摘要: 我经常接触到一些csv格式存储的数据文件，把这些文件导入数据库，或者把数据库的数据导出成为excel文件或者csv文件。自己写功能解析自然好，但是需要处理的地方太多，如果是标准文件还好，但是如果文本文件里含有保留分隔符，或者数据格式有一些小错误，都需要自己处理。而且如果数据格式变化了，每次还要修改自己的代码。所以，我一直没写这个代码。偷懒，一直用Excel的Text to Data 功能凑合，或者用SQL的导入导出功能，再就是用从网页上拷贝粘贴数据到excel，然后清除格式的方法。这些方法其实都有弊端，典型的就是大量的手工才做，重复劳动，这些到还能忍受了，当涉及到数据库，用的最多的自然就是SQL自带的导入导出功能。这个功能大体上好用，可是如果文本文件里面有一点错误，他就罢工。这倒还可以忍受，后来我在64位机器上装了64位的SQL，这样微软居然不支持直接由Excel 导入，说64位版本不需要这个功能，我在网上看到了许多类似需求，微软都坚持说不提供这个64位的flat文件驱动！一等就是3年，SQL2005年发布，现在已经2008年了。可怕。终于看到了这个阿根廷人编写的开源文本文件导入导出帮&nbsp;&nbsp;<a href='http://www.cnblogs.com/xblues/archive/2008/07/07/1237493.html'>阅读全文</a><img src ="http://www.cnblogs.com/xblues/aggbug/1237493.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43784/" 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>好久没写了</title><link>http://www.cnblogs.com/xblues/archive/2008/07/04/1235826.html</link><dc:creator>Blues</dc:creator><author>Blues</author><pubDate>Fri, 04 Jul 2008 09:06:00 GMT</pubDate><guid>http://www.cnblogs.com/xblues/archive/2008/07/04/1235826.html</guid><wfw:comment>http://www.cnblogs.com/xblues/comments/1235826.html</wfw:comment><comments>http://www.cnblogs.com/xblues/archive/2008/07/04/1235826.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xblues/comments/commentRss/1235826.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xblues/services/trackbacks/1235826.html</trackback:ping><description><![CDATA[回来看看，一会接着写！
<img src ="http://www.cnblogs.com/xblues/aggbug/1235826.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43783/" 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>招聘 .net 程序员</title><link>http://www.cnblogs.com/xblues/archive/2006/07/11/448158.html</link><dc:creator>Blues</dc:creator><author>Blues</author><pubDate>Tue, 11 Jul 2006 09:13:00 GMT</pubDate><guid>http://www.cnblogs.com/xblues/archive/2006/07/11/448158.html</guid><wfw:comment>http://www.cnblogs.com/xblues/comments/448158.html</wfw:comment><comments>http://www.cnblogs.com/xblues/archive/2006/07/11/448158.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/xblues/comments/commentRss/448158.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xblues/services/trackbacks/448158.html</trackback:ping><description><![CDATA[<p>招聘 .net 程序员<br><br>工作地点：上海<br>工作性质：兼职（独立开发，但是为方便联系，人需要在上海，具体工作地点和时间不限）<br>开发周期：1-2个月<br>报酬总额：1万元人民币<br>技术要求：有实际采用VS2005进行基于ASP.NET 2.0开发的经验，对分层结构有较深理解。<br><br>项目要求：主要功能模块不复杂，重点是框架设计，程序采用分层设计，容易扩展功能，考虑项目今后扩展的要求，DAL层考虑基于ADO.NET 2.0类库的开源或者自行从底层开发的框架（如enterprise library 2等，为今后扩展功能的可能性，本公司需要拥有对项目源代码的所有权），界面符合Web 2.0标准的交互式网站应用程序，基于 ASP.NET 2.0技术，支持Ajax，完全Web（管理和应用）界面，有完整的用户注册和管理功能。<br><br>联系方式：请发邮件到 <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#121;&#97;&#110;&#46;&#108;&#105;&#64;&#116;&#101;&#107;&#46;&#99;&#111;&#109;">ryan.li@tek.com</a>&nbsp;留下您的联系方式。<br><br>PS：真心感谢回复我的每一位朋友，我感觉到博客园是一个藏龙卧虎的地方。目前唯一的问题是，由于我们把框架要求设定到比较新的技术上（完全摒弃了采用基于1.1类库的可能性），对于新的框架比较了解的朋友非常少，继续等待高手的出现。<br><br></p>
<img src ="http://www.cnblogs.com/xblues/aggbug/448158.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43782/" 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>American Top 40</title><link>http://www.cnblogs.com/xblues/archive/2004/06/23/17972.html</link><dc:creator>Blues</dc:creator><author>Blues</author><pubDate>Wed, 23 Jun 2004 01:17:00 GMT</pubDate><guid>http://www.cnblogs.com/xblues/archive/2004/06/23/17972.html</guid><wfw:comment>http://www.cnblogs.com/xblues/comments/17972.html</wfw:comment><comments>http://www.cnblogs.com/xblues/archive/2004/06/23/17972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xblues/comments/commentRss/17972.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xblues/services/trackbacks/17972.html</trackback:ping><description><![CDATA[American Top 40 with Ryan Seacrest<BR>以前总是犯愁怎么找到最流行的歌曲，去过了好多地方，都感觉不太好，偶尔在FM887听到了这个节目，感觉主持人那么专业，真的比887的主持人高出一截，而和英语主持人比较起来就更加专业了，我第一个感觉就是这一定是一个引进节目，没想到被我猜中了，这个可是当今美国最火的FM节目，而排行榜也绝对具有代表性，可惜离开了北京，无法收听这个节目了，好在可以从网上找到这个网站，找到了排行榜，还怕找不到音乐么？<BR><BR>http://www.at40.com<BR><BR>目前的TOP1是我最喜欢的歌曲 The Reason<IMG src="http://www.cnblogs.com/Emoticons/regular_smile.gif"><img src ="http://www.cnblogs.com/xblues/aggbug/17972.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43781/" 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>第一个帖子吧，我也博客了！</title><link>http://www.cnblogs.com/xblues/archive/2004/06/21/17421.html</link><dc:creator>Blues</dc:creator><author>Blues</author><pubDate>Mon, 21 Jun 2004 01:10:00 GMT</pubDate><guid>http://www.cnblogs.com/xblues/archive/2004/06/21/17421.html</guid><wfw:comment>http://www.cnblogs.com/xblues/comments/17421.html</wfw:comment><comments>http://www.cnblogs.com/xblues/archive/2004/06/21/17421.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xblues/comments/commentRss/17421.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xblues/services/trackbacks/17421.html</trackback:ping><description><![CDATA[<IMG src="http://www.cnblogs.com/Emoticons/tongue_smile.gif"><IMG src="http://www.cnblogs.com/Emoticons/tongue_smile.gif"><IMG src="http://www.cnblogs.com/Emoticons/sad_smile.gif"><IMG src="http://www.cnblogs.com/Emoticons/what_smile.gif"><IMG src="http://www.cnblogs.com/Emoticons/red_smile.gif"><IMG src="http://www.cnblogs.com/Emoticons/shades_smile.gif"><IMG src="http://www.cnblogs.com/Emoticons/star.gif"><IMG src="http://www.cnblogs.com/Emoticons/star.gif"><IMG src="http://www.cnblogs.com/Emoticons/present.gif"><IMG src="http://www.cnblogs.com/Emoticons/75_75.gif"><IMG src="http://www.cnblogs.com/Emoticons/shades_smile.gif"><IMG src="http://www.cnblogs.com/Emoticons/cry_smile.gif"><IMG src="http://www.cnblogs.com/Emoticons/wink_smile.gif"><BR>嗯，早就打算编写自己的网络程序，不过，不急于动手，先看看时下流行的东西吧，写程序和买东西一样，我的套路是先转遍全市场，再作决定。<img src ="http://www.cnblogs.com/xblues/aggbug/17421.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43780/" 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></channel></rss>