﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Baldwin's DNN</title>
    <description>在此研究DNN的所有相关课题，希望给DNN在中国的广为人知贡献一点绵薄之力....</description>
    <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/BlogID/1/Default.aspx</link>
    <language>zh-CN</language>
    <managingEditor>dnnsun@gmail.com</managingEditor>
    <webMaster>dnnsun@gmail.com</webMaster>
    <pubDate>Tue, 18 Nov 2008 23:01:05 GMT</pubDate>
    <lastBuildDate>Tue, 18 Nov 2008 23:01:05 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 2.1.0.0</generator>
    <item>
      <title>DotNetNuke最新架构图</title>
      <description>&lt;div&gt;分享一下最新版本的DNN架构图, 这是&lt;a target="_blank" href="http://www.cuongdang.net/"&gt;Dang&lt;/a&gt;最新设计的design, 顺便Show一下本站点"SunBlog"最新应用的facebook模态窗口的效果(如果你经常上开心网或facebook等SNS网站的话就会发现类似效果的窗口). 关于DNN架构的应用请查看我之前的文章:&lt;a target="_blank" href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryId/11/DNN-Object-Hydrator-Analyse-CBO.aspx"&gt;DNN Object Hydrator -- CBO解析&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;初始:(点击查看清晰图)&lt;/strong&gt;&lt;br /&gt;
&lt;a rel="facebox" href="http://www.dnnsun.com/Portals/0/Blog/dnnarchitecture.jpg"&gt;&lt;img height="243" alt="" width="244" border="0" src="http://www.dnnsun.com/Portals/0/Blog/oldchart_thumb.gif" /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;strong&gt;最新:(点击查看清晰图)&lt;/strong&gt;&lt;br /&gt;
&lt;a rel="facebox" href="http://www.dnnsun.com/Portals/0/Blog/DNN_Architecture.jpg"&gt;&lt;img height="244" alt="" width="244" border="0" src="http://www.dnnsun.com/Portals/0/Blog/chart_thumb.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/74/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/8/default.aspx">DNN最新资讯</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/7/default.aspx">杂项</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/74/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Default.aspx?tabid=67&amp;EntryID=74</guid>
      <pubDate>Wed, 19 Nov 2008 02:44:04 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=74</trackback:ping>
    </item>
    <item>
      <title>(转载)上SNS，是社交，还是玩游戏？</title>
      <description>&lt;p&gt;&lt;strong&gt;原文地址: &lt;/strong&gt;&lt;a href="http://longthi.blog2.cnool.net/Article/2008/11/15/305897.html"&gt;http://longthi.blog2.cnool.net/Article/2008/11/15/305897.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;SNS，已经不是一个什么新鲜的词语。社会性网络服务：通过网络帮助人们建立社交关系的网络载体，可以说是web2.0时代最优秀的产物，应用“六度空间”理论创造的可以建立社交关系，维持社交关系的平台。&lt;/p&gt;  &lt;p&gt;从大方向上来讲，SNS是很重要的使网络走向真实化的网络服务，但是，在几个月内，这么好的环境被马上破坏了，甚至有人开始质疑SNS可能就是昙花一现。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;从SNS，我得到了很多！&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;个人接触SNS算是比较晚的了，从今年年初才加入了校内的行列。刚开始在短短的一周内，通过校内就联系上了很多的老同学，老朋友，我感谢SNS给我的帮助，并且通过SNS，能够维持好身在异地的朋友间的交流和感情。&lt;/p&gt;  &lt;p&gt;每天谢谢日志，分享下PP，随便书写下心情，交流下情感，这是个不错的环境，从维持社交关系上讲，SNS的确比任何其他服务更具有优势。&lt;/p&gt;  &lt;p&gt;有时，大家会为了一个话题争论不休，从各自朋友的评论中，又可能发现志同道合的朋友，并建立起新的社交圈。群组，圈子，聚会，等等这些，借助SNS的平台发挥着相比博客更大的力量。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;小游戏充斥了SNS&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;自从5月左右开始，小游戏等娱乐性组件就开始充斥着各大SNS，甚至成为一种趋势，每天本来更新好友日志的地方，刷屏一样的更新游戏动态，本身只有好友邀请和留言回复的通知，开始刷新出几十几百的游戏邀请通知，甚至到了你今天不接受邀请，明天就会同样出现几十个的同款游戏的邀请。&lt;/p&gt;  &lt;p&gt;朋友们更新的日志数量开始减少，上的PP也少了，每天上SNS的目的仅仅是为了今天车子停够时间了，换个位置收下钱，或者上来打个工，别明天付不起房租，或者就是挑逗一下买来的好友，赚点小费...无聊，弱智...当然也有没这么傻瓜的，各大网页游戏商打入的第三方组件直接联系上各自的网页游戏，SNS也成了网页游戏玩家最重要的来源途径。&lt;/p&gt;  &lt;p&gt;是的，小游戏，第三方组件等等的引入的确在一定时间内激起了用户对SNS的新鲜感，但是这种新鲜感降低后，带来的是给SNS更沉重的打击，原有忠实用户流失更加严重，新用户因为抱着社交的目的来到这里却发现被骗来玩小游戏便失去兴趣，根本不会再次光顾。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;社交功能被淡化，SNS发展模式问题严重&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;当我们的开发商正在积极的开发成百上千的组件应用时，是否有分析过用户的心理，用户的需求？的确，组件是个不错的方式，可以创造各种类型的交互功能来吸引用户，提高新鲜感，但同时，原始的日志，相册，分享，话题这类促进社交的功能被淡化，而维持社交关系的途径转向组件交互和游戏。&lt;/p&gt;  &lt;p&gt;从SNS运营的角度来考虑，第三方组件的介入的确可以带来新的盈利模式，比如广告，收费道具等，短期内可以解决SNS运营商的经济问题。但从可持续发展角度来讲，淡化了基础社交功能，就等于放弃了核心竞争力，尤其是某些SNS的日志，相册等基础还存在很大问题，日志功能根本无法跟博客比，相册功能简陋到只有上传下载。那么我们的运营商是否看到了这些问题呢？&lt;/p&gt;  &lt;p&gt;那么SNS在中国的发展模式是什么？是更广泛的组件开发，达到帮网页游戏开发商赚钱，并且吸引广告商的介入？用户为什么要为一个不能满足社交需求的拉拢广告商的垃圾站点买单？就为了简单的交互应用？还是为了上来玩玩游戏？或许某些开发商根本不明白：&lt;strong&gt;交互≠社交&lt;/strong&gt;。社交服务是个人性化的服务，必须考虑兴趣取向，感情取向，怀旧取向，价值取向等等方面的社交需求，并通过建立坚实的社交圈和有效的情感交流媒介来达到满足社交需求的目的。&lt;/p&gt;  &lt;p&gt;所以，交互式组件只能带来短期内的热点和盈利点，却在最大化的缩短SNS的存活期。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;回归社交为核心，完善基础功能，开发特色社交服务&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;首先我们要明白，SNS是以社交为核心，不单单是功能上，要上升到理念上，任何形式的开发都不可以偏离满足社交需求这个核心任务。当我们在推广各类组件的时候，不能够喧宾夺主，一定要把基础社交功能摆在首位，就算有再大的利润空间和商业吸引力，都必须把用户需求和用户体验放在首位。&lt;/p&gt;  &lt;p&gt;其实基础功能上还有很多值得开发的东西，比如兴趣圈的开发，心情，唠叨，日志的整合和分类，分享页的分类问题，相册和个人共享空间的应用问题，这里提出一点就是在线视频/语音留言功能，是个很值得去开发的基础功能。&lt;/p&gt;  &lt;p&gt;说到服务，我们就得联系实际，谈社交就一定要走入真实社会，那么服务也要从真实社会出发，通过网络的通信优势，走实体社交服务路线，包括同乡会，同城约会，同城兴趣会，异地老乡会等等形式，把网络作为平时交流和信息传递的媒体，把实体操作作为真正满足社交需求的服务，通过实体服务发现盈利模式。&lt;/p&gt;  &lt;p&gt;---------------------------------------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;有些东西也只能点到为止，我只是想说，我离开了SNS社区，不是因为没有了新鲜感，其实我很舍不得刚刚联系上的老同学，但是，那些游戏，那些组件每天搞得人很烦，很无趣，说白了，每天定时上去搞那些东西很傻~~~我只是希望那些开发商别只顾着照葫芦画瓢，先从用户的角度出发来分析一下问题，再考虑下SNS到底是社交还是玩游戏？是走社交服务路线还是走交互娱乐路线~~~&lt;/p&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/73/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/7/default.aspx">杂项</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/11/default.aspx">转载区</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/73/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Default.aspx?tabid=67&amp;EntryID=73</guid>
      <pubDate>Sun, 16 Nov 2008 02:06:50 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=73</trackback:ping>
    </item>
    <item>
      <title>SunBlog更新:整合jQuery</title>
      <description>&lt;p style="text-align: center"&gt;&lt;a href="http://www.dnnsun.com/WindowsLiveWriter/SunBlogjQuery_12158/SunBlog&amp;jQuery_0_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="182" alt="SunBlog and jQuery" src="http://www.dnnsun.comhttp://www.dnnsun.com/WindowsLiveWriter/SunBlogjQuery_12158/SunBlog&amp;jQuery_0_thumb.png" width="427" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;jQuery以其简洁而著称, 也就是"Do more with less"理念贯穿其中, 我想这是我们需要的, 以最简洁的方式附加一系列的方法和属性甚至事件到某一个DOM节点. 而DNN也打算在5.0版本上整合jQuery, 如此ClientAPI就可以借助jQuery的框架发挥更大的威力和性能, 让我们拭目以待. 当然, SunBlog模块也不甘落后, 目前也在整合jQuery, 就是替代之前使用的Asp.Net Ajax Tookit框架, 在整合j的过程中, 发现jQuery的确可以用更少的代码开发出更强大的功能, 比如Search输入框的水印功能(Watermark), 之前我使用的是Asp.Net Ajax Tookit的TextBoxWatermarkExtender控件, 而如今我只需要几行js代码即可实现同样的feature, 从下列代码可以看出区别:&lt;/p&gt;  &lt;div&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #008000"&gt;&lt;!--使用TextBoxWatermarkExtender, 有点方便不过你需要引用Tookit程序集或需要一堆脚本--&gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:TextBox&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="txtSearch"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="server"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;CssClass&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="NormalTextBox"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Style&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="width: 190px;"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;EnableViewState&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="False"&lt;/span&gt; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;         &lt;span style="color: #ff0000"&gt;MaxLength&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="500"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Ajax:TextBoxWatermarkExtender&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="txtWESearch"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="server"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;TargetControlID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="txtSearch"&lt;/span&gt; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;          &lt;span style="color: #ff0000"&gt;WatermarkText&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Search Entrys"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;WatermarkCssClass&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="SearchWatermark"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #008000"&gt;&lt;!--使用jQuery框架, 只需要简单的配置和几行js代码--&gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:TextBox&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="txtSearch"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="server"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;CssClass&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="SearchWatermark"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Style&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="width: 160px;height:20px;font-size:16px;"&lt;/span&gt; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;         &lt;span style="color: #ff0000"&gt;EnableViewState&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="False"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MaxLength&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="500"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;对应的js代码:&lt;/p&gt;

&lt;div&gt;
  &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;jQuery(document).ready(&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    _swapElem = jQuery(&lt;span style="color: #006080"&gt;'.SearchWatermark'&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    _swapValue = &lt;span style="color: #006080"&gt;'Search Entrys'&lt;/span&gt;; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    _swapElem.focus(&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (_swapElem.val() == _swapValue) {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;            _swapElem.val(&lt;span style="color: #006080"&gt;""&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;            _swapElem.removeClass(&lt;span style="color: #006080"&gt;'SearchWatermark'&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;        }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    }).blur(&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (jQuery.trim(_swapElem.val()) == &lt;span style="color: #006080"&gt;""&lt;/span&gt;) {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;            _swapElem.val(_swapValue);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;            _swapElem.addClass(&lt;span style="color: #006080"&gt;'SearchWatermark'&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;        }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    });&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;})&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;以上算是一个小demo, 如果你注意到的话, 本Blog的TagCloud模块就是利用jQuery框架和&lt;a href="http://plugins.jquery.com/project/ahover" target="_blank"&gt;Animated Hover Plugin&lt;/a&gt;（一个jQuery插件）实现某些动画效果，有兴趣不妨把鼠标停留在某一个Tag标签上看看, 关于Animated Hover Plugin请参看这里: &lt;a href="http://media.brianbeck.com/shared/javascript/jquery-ahover/demo/demo.html"&gt;http://media.brianbeck.com/shared/javascript/jquery-ahover/demo/demo.html&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;接下来SunBlog将利用&lt;a href="http://www.malsup.com/jquery/block/" target="_blank"&gt;jQuery BlockUI Plugin&lt;/a&gt;来替代ModalPopupExtender, 真正让jQuery融入SunBlog里边，预计整体性能会提升不少。&lt;/p&gt;
&lt;strong&gt;更多的jQuery和DNN的整合链接&lt;/strong&gt;: 

&lt;br /&gt;jQuery, Microsoft and DNN 

&lt;br /&gt;&lt;a href="http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryId/2008/jQuery-Microsoft-and-DNN.aspx"&gt;http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryId/2008/jQuery-Microsoft-and-DNN.aspx&lt;/a&gt; 

&lt;br /&gt;DotNetNuke 5.0: Now with jQuery 

&lt;br /&gt;&lt;a href="http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryId/2009/DotNetNuke-5-0-Now-with-jQuery.aspx"&gt;http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryId/2009/DotNetNuke-5-0-Now-with-jQuery.aspx&lt;/a&gt; 

&lt;br /&gt;Using JQuery In DotNetNuke 5.0 

&lt;br /&gt;&lt;a href="http://blog.theaccidentalgeek.com/post/2008/10/20/Using-jQuery-in-DotNetNuke-50.aspx"&gt;http://blog.theaccidentalgeek.com/post/2008/10/20/Using-jQuery-in-DotNetNuke-50.aspx&lt;/a&gt; 

&lt;br /&gt;&lt;strong&gt;更多的jQuery和Asp.Net的整合链接&lt;/strong&gt;: 

&lt;br /&gt;Asp.Net之父Scott Guthrie的博客: &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx&lt;/a&gt; 

&lt;br /&gt;一个对jQuery加入MVC框架拍手赞成的牛人: &lt;a href="http://encosia.com/category/jquery/"&gt;http://encosia.com/category/jquery/&lt;/a&gt; 

&lt;br /&gt;一直研究ASP MVC框架的大腕，当然对jQuery也见解独到: &lt;a href="http://www.west-wind.com/WebLog/"&gt;http://www.west-wind.com/WebLog/&lt;/a&gt; 

&lt;br /&gt;一个对UI颇有研究的Web开发架构师，同时对jQuery一见钟情: http://mattberseth.com/blog/jquery/ </description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/72/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/8/default.aspx">DNN最新资讯</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/2/default.aspx">DNN模块开发</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/12/default.aspx">站点更新</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/72/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Default.aspx?tabid=67&amp;EntryID=72</guid>
      <pubDate>Sun, 09 Nov 2008 12:36:34 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=72</trackback:ping>
    </item>
    <item>
      <title>SunBlog更新: 增加Window Live Writer的支持</title>
      <description>&lt;p&gt;&lt;a href="http://www.dnnsun.com/WindowsLiveWriter/SunBlogWindowLiveWriter_E658/WLW_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin-right: 10px; border-right-width: 0px" height="366" alt="WLW" src="http://www.dnnsun.comhttp://www.dnnsun.com/WindowsLiveWriter/SunBlogWindowLiveWriter_E658/WLW_thumb_1.png" width="464" align="left" border="0" /&gt;&lt;/a&gt;今天本Blog模块(代号"SunBlog")又新增了一个比较"Cool"的功能, 那就是Window live writer(简称WLW), 有了WLW的支持, 在Blog发布帖子不再如此费劲了(如果你用过DNN的FCKEditor发布信息的话, 我想你会明白我的感受的), 同时也不再担心因为网站服务器不响应而丢失信息了, 丢失信息对于自己辛辛苦苦写好的帖子无疑是致命的打击, 而对于我来说使用WLW最好的一点是它支持扩展的插件应用, 也就是说可以用不同的插件来方便帖子的发布,比如代码高亮提示(这是FCKEditor缺失的), 图片添加甚至你可以很方便的为它添加某些常见的效果(水印, 暗影), 最后还有就是本地备份的功能, 从此你可以更好的维护自己的文章及帖子, 偶尔还可以直接在本地查看浏览。 也许还有更多的好处有待发现 :)&lt;/p&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/71/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/2/default.aspx">DNN模块开发</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/12/default.aspx">站点更新</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/71/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Default.aspx?tabid=67&amp;EntryID=71</guid>
      <pubDate>Mon, 03 Nov 2008 08:23:02 GMT</pubDate>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=71</trackback:ping>
    </item>
    <item>
      <title>TrimEnd() Vs SubString</title>
      <description>分享如何处理带有分隔符的字符串的一些小技巧, 希望可以给大家一些启示...</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/70/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/2/default.aspx">DNN模块开发</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/7/default.aspx">杂项</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/70/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Default.aspx?tabid=67&amp;EntryID=70</guid>
      <pubDate>Mon, 03 Nov 2008 06:40:44 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=70</trackback:ping>
    </item>
    <item>
      <title>SunBlog更新:增加TagCloud Feature(标签功能)</title>
      <description>&lt;div&gt;&lt;img height="293" alt="Tag Cloud" width="221" align="right" border="0" src="http://www.dnnsun.com/Portals/0/Blog/TagCloud.gif" /&gt;今天本Blog模块(代号"SunBlog")又新增了一个比较"Cool"的功能, 那就是TagCloud, 我们在Web 2.0经常提及的热点标签功能, 这也是大部分Blog应用(比如SubText,BlogEngine.NET)具有的功能(feature)，故SunBlog也考虑进来，方便用户获取到自己比较关注的信息，希望大家喜欢,给予更多的反馈...&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;what is tag cloud?&lt;/strong&gt; (更多关于tag cloud信息可访问&lt;a href="http://en.wikipedia.org/wiki/Tag_cloud"&gt;http://en.wikipedia.org/wiki/Tag_cloud&lt;/a&gt;)&lt;br /&gt;
A tag cloud or word cloud (or weighted list in visual design) is a visual depiction of user-generated tags, or simply the word content of a site, used typically to describe the content of web sites. Tags are usually single words and are typically listed alphabetically, and the importance of a tag is shown with font size or color. Thus both finding a tag by alphabet and by popularity is possible. The tags are usually hyperlinks that lead to a collection of items that are associated with a tag.&lt;/div&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/68/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/8/default.aspx">DNN最新资讯</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/2/default.aspx">DNN模块开发</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/12/default.aspx">站点更新</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/68/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Default.aspx?tabid=67&amp;EntryID=68</guid>
      <pubDate>Sun, 02 Nov 2008 12:25:58 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=68</trackback:ping>
    </item>
    <item>
      <title>SunBlog更新:增加Gravatar的支持</title>
      <description>&lt;div&gt;&lt;strong&gt;gravatar feature demo:&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;img height="107" alt="" width="761" border="0" src="http://www.dnnsun.com/Portals/0/Blog/gravatar.gif" /&gt;&lt;/div&gt;
&lt;div&gt;今天对本Blog(代号"SunBlog")新增了一个功能:用户评论和&lt;a target="_blank" href="http://www.gravatar.com"&gt;gravatar&lt;/a&gt;的整合,也就是用户可通过关联自己在gravatar网站的Email获取到avatar,从而可显示自己的头像在评论中,这是大部分Blog应用(比如SubText,BlogEngine.NET)具有的功能(feature),故SunBlog也考虑进来，如此更强调用户的参与和交互，希望大家喜欢,给予更多的反馈... &lt;img alt="" src="http://www.dnnsun.com/Providers/HtmlEditorProviders/Fck/FCKeditor/editor/images/smiley/msn/wink_smile.gif" /&gt;&lt;/div&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/67/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/8/default.aspx">DNN最新资讯</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/2/default.aspx">DNN模块开发</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/12/default.aspx">站点更新</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/67/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Default.aspx?tabid=67&amp;EntryID=67</guid>
      <pubDate>Thu, 30 Oct 2008 02:56:25 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=67</trackback:ping>
    </item>
    <item>
      <title>DNN SQL 语句集粹</title>
      <description>在DNN模块开发过程中，写存储过程可算是一个基本功，一开始你可以copy &amp; paste, 但毕竟有些麻烦，每次都得去查找，如果你足够细心，不妨做个记录，这样省时省力，在此分享一下本人模块开发过程可能需要的SQL语句，比如如何添加字段，如何更新表结构，如何添加SQL函数，如何关联外键等等.</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/65/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/2/default.aspx">DNN模块开发</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/7/default.aspx">杂项</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/65/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Default.aspx?tabid=67&amp;EntryID=65</guid>
      <pubDate>Wed, 22 Oct 2008 13:01:57 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=65</trackback:ping>
    </item>
    <item>
      <title>Web.config中注册用户控件和自定义控件</title>
      <description>本文为转载，应该是某一开发人员翻译鼎鼎大名的scottgu的某一个帖子而来，我也找不到初始翻译者的链接，如果知道请告之，谢谢。其实这也算是我最近在开发facebook application时注意到的技巧（诀窍),在此分享之。</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/64/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/9/default.aspx">文章推荐</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/11/default.aspx">转载区</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/64/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Default.aspx?tabid=67&amp;EntryID=64</guid>
      <pubDate>Wed, 22 Oct 2008 06:03:54 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=64</trackback:ping>
    </item>
    <item>
      <title>剖析DNN分页控件</title>
      <description>&lt;div&gt;不知道大家是否用过DNN核心自带的分页控件，我想如果用过的话，也许你已碰到类似我将要提到的问题，那就是该分页控件并非像我们所想的那样，利用经典的asp.net框架中的viewstate来响应(postback)用户的操作,它其实是利用一种更为简单的方式: 用url来维护页面参数，这就使得一旦页面回发(postback), 当前页面就会回滚到原始状态，对应的页面参数也会变成初始值，这对于我们来说无疑是痛苦的。也许你不是很清楚这种状况，不妨举个例子看看, 比如你当前页面的url为:http://localhost/dnndev/tabid/65/category/23/default.aspx, 你注意到url里边存在两个参数(tabid和category), 这时如果你在使用DNN核心自带的分页控件,那对应分页控件的页码也许是类似的链接&lt;a href="http://localhost/dnndev/tabid/65/currentpage/4/default.aspx"&gt;http://localhost/dnndev/tabid/65/currentpage/4/default.aspx&lt;/a&gt;, 当你点击该页码时将会跳转到&lt;a href="http://localhost/dnndev/tabid/65/currentpage/4/default.aspx"&gt;http://localhost/dnndev/tabid/65/currentpage/4/default.aspx&lt;/a&gt;，如此一来category/23这参数也随之丢失了。这样的情况在你是纯粹靠拼字符串来激发页面变化的时候更为明显。所以整个页面的URL里边参数都需要考虑如何维护，防止误操作。深入挖掘该分页控件的代码，你会发现参数维护主要是靠QuerystringParams这一属性来维护，一般维护代码如下:&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div class="dp-highlighter" id="vb"&gt;
&lt;div class="bar"&gt; &lt;/div&gt;
&lt;ol class="dp-vb"&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;If&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;Not&lt;/span&gt;&lt;span&gt; Request.Params(&lt;/span&gt;&lt;span class="string"&gt;"categoryid"&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span class="keyword"&gt;Is&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;Nothing&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;Then&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;     m_sViewType = &lt;/span&gt;&lt;span class="string"&gt;"category"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;     m_oCateggory = CategoryController.GetCategory(&lt;/span&gt;&lt;span class="keyword"&gt;CType&lt;/span&gt;&lt;span&gt;(Request.Params(&lt;/span&gt;&lt;span class="string"&gt;"categoryid"&lt;/span&gt;&lt;span&gt;), &lt;/span&gt;&lt;span class="keyword"&gt;Integer&lt;/span&gt;&lt;span&gt;))   &lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;     _Querystring += &lt;/span&gt;&lt;span class="string"&gt;"categoryid="&lt;/span&gt;&lt;span&gt; &amp; Request.Params(&lt;/span&gt;&lt;span class="string"&gt;"categoryid"&lt;/span&gt;&lt;span&gt;).ToString()   &lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;End&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;If&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;If&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;Not&lt;/span&gt;&lt;span&gt; Request.Params(&lt;/span&gt;&lt;span class="string"&gt;"BlogDate"&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span class="keyword"&gt;Is&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;Nothing&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;Then&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;     m_dBlogDate = &lt;/span&gt;&lt;span class="keyword"&gt;CType&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class="keyword"&gt;Date&lt;/span&gt;&lt;span&gt;.Parse(Request.Params(&lt;/span&gt;&lt;span class="string"&gt;"BlogDate"&lt;/span&gt;&lt;span&gt;)), &lt;/span&gt;&lt;span class="keyword"&gt;Date&lt;/span&gt;&lt;span&gt;)   &lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;     _Querystring += &lt;/span&gt;&lt;span class="string"&gt;"BlogDate="&lt;/span&gt;&lt;span&gt; &amp; m_dBlogDate.ToString()   &lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;     &lt;/span&gt;&lt;span class="keyword"&gt;If&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;Not&lt;/span&gt;&lt;span&gt; Request.Params(&lt;/span&gt;&lt;span class="string"&gt;"DateType"&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span class="keyword"&gt;Is&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;Nothing&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;Then&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;         m_sViewType = Request.Params(&lt;/span&gt;&lt;span class="string"&gt;"DateType"&lt;/span&gt;&lt;span&gt;)   &lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;         _Querystring += &lt;/span&gt;&lt;span class="string"&gt;"BlogDate="&lt;/span&gt;&lt;span&gt; &amp; m_sViewType   &lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;     &lt;/span&gt;&lt;span class="keyword"&gt;End&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;If&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;End&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="keyword"&gt;If&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;    &lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span class="comment"&gt;'set the QuerystringParams property &lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;ctlPagingControlBottom.QuerystringParams = Querystring  &lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;link href="/Providers/HtmlEditorProviders/Fck/FCKeditor/editor/plugins/highlighter/dp.SyntaxHighlighter/Styles/SyntaxHighlighter.css" type="text/css" rel="stylesheet" /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;我想你也应该猜到了,这其实也是一个拼字符串的过程，更让你难受的需要你考虑到整个页面url有可能包含的参数信息，对于同一页面多个模块这是无法知晓的。故这将是无可避免的Bugs.当然DNN分页控件并非一无是处，至少很好的支持SEO（搜索引擎),编程更简单些，故对于一个页面只有单个模块的话无疑是一种简单方便的选择，就拿本站点的SunBlog模块来说，因为一般页面就包含Blog相关模块，利用DNN分页控件无疑是明智的。不过个人觉得DNN分页控件有点粗糙，可定制性极差，最后独立出来开发一个更轻量级,优化版本(更简洁的HTML代码）的分页控件，它至少符合SunBlog模块的需求了，目前已在Codeplex.com开源&lt;a href="http://www.codeplex.com/dnnsuntoolkit"&gt;http://www.codeplex.com/dnnsuntoolkit&lt;/a&gt;，有兴趣者不妨对照着DNN分页控件看看其中区别。使用方式跟DNN分页控件差别不大。&lt;br /&gt;
参考链接：&lt;br /&gt;
DNN Paging Control使用方法：&lt;br /&gt;
&lt;a href="http://www.cto20.com/cto20/tabid/647/EntryId/46/DNN-Best-Kept-Secrets-Part-1-DNN-Paging-Control.aspx"&gt;http://www.cto20.com/cto20/tabid/647/EntryId/46/DNN-Best-Kept-Secrets-Part-1-DNN-Paging-Control.aspx&lt;/a&gt;&lt;br /&gt;
DNN Paging Control的缺陷&lt;br /&gt;
&lt;a href="http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/118/postid/96091/scope/posts/Default.aspx"&gt;http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/118/postid/96091/scope/posts/Default.aspx&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/62/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/2/default.aspx">DNN模块开发</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/7/default.aspx">杂项</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/62/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Default.aspx?tabid=67&amp;EntryID=62</guid>
      <pubDate>Tue, 21 Oct 2008 14:22:34 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=62</trackback:ping>
    </item>
  </channel>
</rss>