随笔-91  评论-348  文章-1  trackbacks-2
  置顶随笔
摘要: ASTreeView是一个免费的树控件,支持拖拽,右键菜单(编辑,删除,增加),动态加载(Dynamic Loading),客户端、服务端事件支持,xml导入导出。稳定,快速。欢迎大家试用。 ASTreeView更新到1.5.8了,以下是更新记录: 新增API: SelectNode – 根据节点值选中节点。CheckNodes – 根据节点值勾选节点。UnCheckNodes - 取消勾选节点,...阅读全文
posted @ 2010-06-03 13:57 JIN Weijie 阅读(3874) 评论(61) 编辑
摘要: 买了一个空间,用subText搭了blog,现在正陆陆续续地把这里的随笔转移过去,并加上一些注释,尽量完善一点。如果您有兴趣,不妨经常来 http://www.jinweijie.com 坐坐,谢谢! :)阅读全文
posted @ 2009-01-14 10:09 JIN Weijie 阅读(251) 评论(5) 编辑
  2011年3月15日

同时在用twitter和新浪微博,在twitter上主要看贴为主,在新浪微博上发帖比较多。于是就想到是否搞一下将新浪微博同步到twitter上。搜索了下,发现月光博客上提供了解决方案,不过稍有遗憾的是没有图片的同步。于是就自己用asp.net实现了下,用下来感觉还行,所以分享一下,同时提供源代码,如果有定制开发的朋友可以修改源码,但如果再发布时候,请注明出处,先谢谢了!

下载

前往下载新浪微博RSS生成器Ver 1.0 发布包及源码包

示例效果

部署在家里机器上,可能不稳定。

http://jinweijie.zapto.org:8080/SinaFeed/Default.aspx?SinaUserId=1650422717&AuthCode=jinweijiesinafeed&AttachImageToDescription=true

部署步骤

  1. 首先,需要一个.Net Framework 2.0以上的IIS环境。
  2. 将SinaFeed_Bin_ver_1.0.zip解压以后,部署成网站或者虚拟目录。
  3. 将包里面的db文件夹赋予network service以及aspnet用户可写权限,偷懒且安全的话,给everyone即可。
  4. 运行起来的话,应该会是个Authentication Error的错误,这是正常的,因为接下来要配置下。

同步原理

用FeedBurner绑定Twitter,在FeedBurner中配置Rss源到SinaFeed应用。当FeedBurner每次来ping的时候,SinaFeed抓取新浪微博的内容,检查是否已经抓取过,把结果保存在Access数据库中,返回Rss给FeedBurner。

实现功能

配置

在Web.Config里,有以下几个可以配置的选项:

代理服务器相关,例如你的网站访问外网需要代理的话,请设置一下配置:
UseProxy , ProxyAddress, ProxyPort, ProxyDomain, ProxyUserName, ProxyUserPassword

AuthCodeConfig 配置在应用里的授权码,自己设定一个,例如abc,当外面请求RSS的时候,需要在Url传递一个AuthCode,要和所配置的(abc)一直,程序才会返回结果,否则报Authentication Error错误。

AllowedUserIds 允许被处理新浪微博Id,如何得到你的Id?只要点击“关注”,在Url里就会出现你的Id,例如,我的Id是:1650422717 。SinaFeed支持多个Id,用逗号(,) 分割。

RssChannelUrl 所生成的Rss的ChannelUrl

RssBaseGuid 所生成的Rss的唯一标识

RssTitle 所生成的Rss的标题

RssDescription 所生成的Rss的描述

使用步骤

例如,你部署在www.example.com虚拟目录为SinaFeed,你的新浪Id为1650422717,AuthCodeConfig你配置了jinweijiesinafeed那么

访问http://www.example.com/SinaFeed/Default.aspx?SinaUserId=1650422717&AuthCode=jinweijiesinafeed

就可以得到用户1650422717的Rss了。

另外的一些可传参数的配置:

UseOriginalImage 是否使用原来的大图片,默认True,如果False的话,将会使用新浪微博的缩略图。

RssMaxItemCount 返回RSS Items的最大数量。

AttachImageToEnclosure 是否将图片已Enclosure的方式发布到RSS

AttachImageToTitle 是否将图片地址添加到RSS Item的Title后面。

AttachImageToDescription 是否将图片地址添加到RSS Item的Description后面。

AttachOriginalMblogToRT 如果是转发微博,是否添加原微博到。

一般我的配置:

http://www.example.com/SinaFeed/Default.aspx?SinaUserId=1650422717&AuthCode=jinweijiesinafeed&AttachImageToDescription=true

同步结果

新浪微博

image

Twitter:

image

FeedBurner的配置

有了RSS,然后我们就可以配置FeedBurner来绑定Twitter帐号了。

  1. 首先,你需要一个FeedBurner的帐号,需要翻个墙,如何注册这里就不赘述了,大家应该各有神通吧。
  2. 然后填入你的SinaFeed应用的地址:
    image
  3. 在Publicize tab里的Socialize菜单绑定你的Twitter帐号,保存。
    image
  4. 一般FeedBurner更新周期是30分钟,你也可以用它的ping功能,马上实现同步。

我的新浪微博

有任何问题可以加我的微博进行讨论。我的新浪微博和twitter都是@jinweijie 。谢谢!

posted @ 2011-03-15 10:12 JIN Weijie 阅读(1392) 评论(2) 编辑
  2011年1月1日

2011了,大家新年好!

外面寒冷,躲在家里写写博客还是挺好的。

今天为我的博客修改了下jQuery的Thickbox,增加了预加载图片功能和点击图片前后浏览的功能。

首先看下效果:

http://www.jinweijie.com/photo/?album=1&gallery=3

 

效果图(看右侧的箭头)

image

先说说预加载功能

点击图片,当图片加载完毕以后,会自动加载后2张图片,这样,浏览起来会变得很顺畅。

主要代码:

替换thickbox.js中的:

imgPreloader = new Image();
imgPreloader.onload = function(){
imgPreloader.onload = null;

 

imgPreloader = new Image();
prevImg = new Image();
nextImg = new Image();
imgPreloader.onload = function(){
imgPreloader.onload = null;

var tb_links = jQuery('a[class="thickbox"]');
var i = -1;
tb_links.each(function(n) { if (this.href == imgPreloader.src) { i = n; } });


if (i != -1) {
    if (i>0) { prevImg.src = tb_links[i-1].href; }
    if (i+1 < tb_links.length) { 
    
        var imgTemp1 = new Image();
        imgTemp1.src = tb_links[i+1].href; 
        
        if(tb_links[i+2]){
            var imgTemp2 = new Image();
            imgTemp2.src = tb_links[i+2].href; 
        }
        
        if(tb_links[i+3]){
            var imgTemp3 = new Image();
            imgTemp3.src = tb_links[i+3].href; 
        }
    }
}

接着是浏览按钮功能

需要3张图片left.gif, right.gif, pixel.gif。分别是左右和div透明背景图。
然后修改thickbox.css,增加:
#divNavControl{
    position: absolute;
    z-index:999;
}

#divPre{
     height: 100%;
    left: 0;
    position: absolute;
    width: 50%;
    background:url(pixel.gif) repeat;
    cursor:pointer;
}

#divNext{
    height: 100%;
    position: absolute;
    right: 0;
    width: 50%;
    background-color:transparent;
    background:url(pixel.gif) repeat;
    cursor:pointer;
}

#imgLeftArrow{
    position:absolute;
    top:45%;
    left:0;
}

#imgRightArrow{
    position:absolute;
    top:45%;
    right:0;
}

最后修改thickbox.js,由于代码太长了,就不贴出来了,大家有兴趣可以看看,或者直接用就行了。

下载请到 http://www.jinweijie.com/javascript/thickbox-add-previous-and-next-button-on-image-like-lightbox/

这里就不上传了。

 

谢谢大家,再次祝大家新年快乐!

posted @ 2011-01-01 15:39 JIN Weijie 阅读(1288) 评论(6) 编辑
  2010年6月3日

ASTreeView是一个免费的树控件,支持拖拽,右键菜单(编辑,删除,增加),动态加载(Dynamic Loading),客户端、服务端事件支持,xml导入导出。稳定,快速。欢迎大家试用。

ASTreeView更新到1.5.8了,以下是更新记录:

新增API:

SelectNode – 根据节点值选中节点。
CheckNodes – 根据节点值勾选节点。
UnCheckNodes -  取消勾选节点,根据节点值。
FindByValue – 类似于WebControl类的FindControl方法,根据值得到节点实例。
FindByText – 根据节点文字得到节点实例。

ASDropDownTreeView新增Enable/Disable功能

可以设置下拉框树的启用或者禁用,代码:

this.astvMyTree.Enabled = false;

 

ASTreeViewNode新增EnableOpenClose属性

image

开发者可以设置这个属性来控制是否显示节点前的加号/减号:

someNode.EnableOpenClose = false;

[重要]拖拽的API有所改变

在1.5.8版本里,OnNodeDragAndDropCompleteScript属性已经更改为:OnNodeDragAndDropCompletingScript

另外,新增OnNodeDragAndDropCompletedScript属性。

关于两个属性的说明:

OnNodeDragAndDropCompleting在这个事件里,开发者可以取消当前的的拖拽操作,但是不能得到拖拽节点的nextSibling等属性,因为拖拽尚未完成。

OnNodeDragAndDropCompletedScript在此事件里,开发者可以得到拖拽节点的nextSibling和parentNode等属性,但不能取消拖拽,因为node已经appended了。

 

修复的Bug:

修复在动态加载中,EnableThreeStateCheckbox=false无效问题。

在线演示(网站用的是美国服务器,所以对于有些朋友可能会比较慢):

http://www.astreeview.com

下载(包含示例代码):

http://www.astreeview.com/astreeviewdemo/Download.aspx

 

谢谢!

posted @ 2010-06-03 13:57 JIN Weijie 阅读(3874) 评论(61) 编辑
  2010年2月7日

ASTreeView 1.5.3发布啦,相比1.4.0,新版本改进了很多,还增加了几个很多朋友关心的功能。

下面我介绍下1.5.3中有哪些新东西:

1. 增加了新的节点类型:TextNode

使用TextNode, 开发者可以很灵活地使用html作为树节点的NodeText,这就意味着树节点可以是2个hyperlink,可以有多种颜色,甚至可以是javascript。

来个截图:

image

或者访问Demo看效果

2. 增加EnableDragDropOnIcon属性

当使用TextNode作为树节点时,节点的拖拽就成了问题,因为ASTreeView不知道树节点里的html会是什么。所以我增加了EnableDragDropOnIcon 属性,如果设置为true,那么最终用户可以拖拽树节点前的图标进行节点的移动。

截图:

image

访问Demo看效果

3. 支持自定义Javascript处理函数

这是新版本最大的亮点之一。想像如此情景:当开发人员想用ajax增加节点的时候,在服务端验证是否这个符合一定规范,如果不符合,返回特定字符,客户端取消增加节点的操作,在新版本中,可以这样实现:

(a) 设置EnableOnNodeAddedScriptReturn="true"
(b) 设置OnNodeAddedScript="addedHandler(elem)"
(c) 然后在addedHandler函数里这样写:

function addedHandler( elem ){
    var message = '';
    var result = true;
    
    var aTag = elem.getElementsByTagName('A')[0];
    
    if( aTag.getAttribute('addfailed') == 'true' ){
        alert( aTag.innerHTML );
        return false;
    }
    else{
        message = (">>add completed. [Node]" 
        + elem.getAttribute("treeNodeValue") + "<br />" );
    }

    document.getElementById("<%=divConsole.ClientID %>").innerHTML
     += message;
    return result;
    
}

在这个例子中,服务端返回addfailed的属性,加在节点的a标签上,addedHandler看到这个标签,返回false,告诉ASTreeView取消当前的新增节点操作。

同样的,在新版本中,也可以对编辑,删除,拖拽节点进行取消控制。

截图:

image

 

请访问在线Demo

 

4. 改进了astreeview.css

新版本对根节点和顶端节点的css进行了调整,更好地对齐了节点和树线。感谢richboylee!、

5. 改进了ASTreeView的ViewState管理

新版对ViewState进行了优化,介绍了往客户端发送的数据量

6. 对dll进行了强名称签名

7. 分别在Visual Studio 2005和Visual Studio 2008下编译了两个版本

一个版本for .net 2.0,引用Ajax Extension 1.0; 另一个版本for .net 3.5,引用Ajax Extension 3.5。

image

 

就写这么多,感兴趣的同学可以下载下来自己玩玩。

 

下载地址:

http://www.astreeview.com/astreeviewdemo/Download.aspx

 

谢谢大家一直以来的支持,截止到1.5.3,ASTreeView已经比较稳定了,有很多国内外朋友用在项目里反映都不错。如果您觉得这控件还可以,就麻烦您推荐下,谢谢!

posted @ 2010-02-07 23:52 JIN Weijie 阅读(2718) 评论(32) 编辑
  2010年1月4日

首先祝大家在新的一年里天天开心,有更多的收获!

ASTreeView在大家的帮助和支持下,已经更新了好几次,每一次都有新的功能,修复新的bug。正是由于有很多朋友使用,ASTreeView才能有不断的进步,在这里先谢谢大家了!

新年伊始,ASTreeView又有添加了几个新功能,希望在这里可以和大家分享下:

1.  拖拽支持横向锁定

    当用户拖拽节点的时候,如果设置EnableHorizontalLock=True的话,那么,最终用户只能在y轴方向上拖动。这个功能在列表排序的时候,还有限定同级节点拖动时比较有用。点击查看在线演示。截图:

   image

2. 限定拖动层级

   在新版1.4.0中,可以限制拖拽的层级,也就是可以限制节点只能在它的同一级拖动。这样,可以用ASTreeView实现列表排序功能。在线演示同上。

3. 增加OnNodeDragAndDropStartScript事件

    新版中增加了OnNodeDragAndDropStartScript,开发者可以在最终用户拖拽节点前执行一些javascript,使用示例:
    首先设置TreeView属性:

   OnNodeDragAndDropStartScript="dndStartHandler( elem )"
  
  然后写一个处理函数:
//parameter must be "elem" 
    
functiondndStartHandler( elem ){  
    document.getElementById("<%=divConsole.ClientID %>").innerHTML  
    += (">>drag started. [Node]"+ elem.getAttribute("treeNodeValue")  
    +" [Parent]:"+ elem.parentNode.parentNode.getAttribute("treeNodeValue")  
    +"<br />");
}

 

4. 增加了动态载入PostBack的解决办法

    很多朋友反映,当节点是动态载入的时候,选择,勾选的PostBack不发生。这是由于动态加载节点的时候,是服务器端临时输出的节点的关系,在服务器端的控件树中并不存在这些节点。其实这个问题还是比较好解决的,我更新了下示例5,实现了此功能,有兴趣的朋友可以下载下来玩一玩。或者访问在线演示

 

谢谢大家支持,祝大家新年快乐!

posted @ 2010-01-04 21:56 JIN Weijie 阅读(1656) 评论(15) 编辑
  2009年11月27日
摘要: 从1.1.1到1.3.0,有以下的改进: 1.右键菜单扩展 2.主题支持 3.左到右(ltf)显示支持 4.点击父节点展开/收缩节点 5.节点支持html 6.支持转义字符 7.支持多行编辑 8.支持拖拽事件 9.禁止子节点属性阅读全文
posted @ 2009-11-27 10:18 JIN Weijie 阅读(2178) 评论(47) 编辑
  2009年10月16日
摘要: 继ASTreeView 1.0发布以后,得到了很多朋友的关注和使用,在这里先感谢这些朋友们! 通过这些反馈,发现了ASTreeView的一些bug和新功能的需求。 新版本1.1.1可以从http://astreeview.googlecode.com/files/astreeview1.1.1.zip 下载,包含示例代码。 新版本的ASTreView修复的bug: 修复了和jQuery冲突问题(主要是由于$方法所引起的),感谢xiaot的意见。 下拉框树的验证控件无法禁用问题,感谢zzdfc朋友的意见。 在网络慢的情况下初始化下拉框树可能出现js报错。 拖拽最后节点时,树线无法正确阅读全文
posted @ 2009-10-16 14:17 JIN Weijie 阅读(2245) 评论(23) 编辑
  2009年9月11日
摘要: 由于海意互联的恶劣态度,决定把虚拟主机移到GoDaddy上,本文记录了迁移过程中遇到的一些问题(主要是安全问题和数据库的转移)以及相应的解决方案。阅读全文
posted @ 2009-09-11 12:57 JIN Weijie 阅读(1770) 评论(18) 编辑
  2009年8月27日
摘要: 经过陆陆续续漫长的开发,ASTreeView终于可以和大家见面啦! 之前也有和几位朋友有过交流,给他们看过些demo,反响还可以,所以这几天完善好demo以后斗胆发到首页和大家分享。 ASTreeView是免费的,你可以用在任何项目里。阅读全文
posted @ 2009-08-27 23:18 JIN Weijie 阅读(4307) 评论(30) 编辑
  2009年3月1日
摘要: Windows xp pro带的iis是5.0版的,默认最大连接数是10.如何增加最大连接数呢?这样操作:首先去 http://support.microsoft.com/default.aspx?scid=kb;en-us;301386下载MetaEdit 安装以后,浏览到LM/W3WSVC/MaxConnections节点,把10修改成2000000000就可以啦 ...阅读全文
posted @ 2009-03-01 12:51 JIN Weijie 阅读(366) 评论(3) 编辑
仅列出标题  下一页