[原] 总算实现SWFUpload和easyui的DataGrid整合了
Posted by bianbian on 2011-12-24 11:25
本文Tags: easyui, jQuery, swfupload
标签: easyui, jQuery, swfupload遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道
相关日志
Posted in JavaScript, Technology | No Comments »
IT
Posted by bianbian on 2011-12-24 11:25
本文Tags: easyui, jQuery, swfupload
标签: easyui, jQuery, swfuploadPosted in JavaScript, Technology | No Comments »
Posted by bianbian on 2011-08-11 04:50
本文Tags: AddPicture, C#, PowerPoint, PPT
powerpoint 2003 直接 “AddPicture (http://” 可行,如:
但在ppt 2007中,无法通过AddPicture添加http开头的图片,必须先AddShape,然后Fill:
详见:http://support.microsoft.com/kb/928983/en-us
标签: AddPicture, C#, PowerPoint, PPTPosted in C#, Technology, Windows | No Comments »
Posted by bianbian on 2011-08-05 04:36
Posted in JavaScript | No Comments »
Posted by bianbian on 2011-07-27 12:53
使用C#写CLR存储过程确实很方便。
不过遗憾的是,如果CLR里通过SqlContext.Pipe.Send()返回Select结果的话,并不能被Linq to SQL自动识别而返回ISingleResult的。(因为部署CLR存储过程实际产生的代码是不包含select语句的)
换句话说,所有CLR存储过程的返回值在Linq to SQL里都会被当成int。
解决办法:
1)如果该存储过程没有out的参数,比较好办:使用ExecuteQuery
如:
var query = DataContext.ExecuteQuery
这种方法能取到结果,但是没有办法获得out参数。
2)如果该存储过程又有out的参数需要获得值,又返回select结果集的:
非常麻烦,只能部署CLR存储过程前,先手动在数据库里create procedure(同名,里面填上参数和select语句),
然后骗取Linq to SQL生成返回ISingleResult的代码,然后drop procedure,再部署CLR存储过程。
否则,即使把返回int的代码手动改成返回ISingleResult的,也会报错。我这里一直报 ArgumentOutOfRangeException
所以针对这种存储过程,最好还是T-SQL语句写。CLR的反而好麻烦。
Posted in C#, Database, Technology | 1 Comment »
Posted by bianbian on 2011-04-06 09:52
今天编译rsl,是在一台完全空白的ubuntu上(对,完全空白,连gcc也没有)。
apt-get install gcc autoconf automake libtool
略过不表。
make的时候,一直提示如下错误:
/libtool: line 646: X–tag=CC: command not found
…
google了半天,终于找到这个:
http://processors.wiki.ti.com/index.php/DMAI_GStreamer_Plug-In_Getting_Started_Guide
../libtool: line 763: X–tag=CC: command not found
The libtool on your host computer is causing the problem (using $(echo) when it is not defined). Either install an older libtool version (1.5.26) or define the echo environment variable.
Posted in Linux | 10 Comments »
Posted by bianbian on 2011-01-16 12:24
本文Tags: google, jQuery, plugin
在这里:http://code.google.com/p/jquery-myhint-plugin/
easy to use myhint plugin:
效果:

Posted in JavaScript, Technology | No Comments »
Posted by bianbian on 2010-12-04 12:00
搞定ArcGis的切片原理和离线服务,需要继承TiledMapServiceLayer
另外完善了下午写的程序,批量下载ArcGis的切片或从Service上抓切片
另外晚上写了个程序,自动根据REST服务生成新的TiledMapServiceLayer
哈哈,现在从无开始部署一个离线的Flex ArcGis平台非常方便。。。。


Posted in Technology | No Comments »
Posted by bianbian on 2010-12-02 09:13
Posted in Technology | No Comments »
Posted by bianbian on 2010-09-23 03:17
最近实现一种将数据表转为JSON表示的新方法。
这种方法表示的JSON数据更省空间(尤其是网络传输,能省很多数据量),使用起来也很方便。
假设有这样一张数据表:
| ID | Name | Location |
| 1 | 周杰伦 | 香港 |
| 2 | 侯佩岑 | 台湾 |
| 3 | 张靓颖 | 大陆 |
一般的JSON表示方法为:
可以看到,数据表的字段信息(column)在每条记录里都写了一遍,比较浪费空间。如果字段很多很长,甚至会比有效内容更多。随着记录数增加,浪费的数据量是很可观的。尤其像以前小百合BBS自己付流量费的时候,流量啊流量。。。。。。
我实现的表示方法产生的JSON格式是这样的:
这种方法将字段信息单独提取到C属性里,而D属性是纯粹的记录数据。
其实D属性本身已经完全能表示记录内容,C属性只是为了使用时方便。
在这短短几个字段及几条数据的极端情况下,已经省下几十字节。
下面对比使用方法,我承认这种方法稍微比通用的方法复杂一点,但是带来的节省,个人认为还是值得的:
下面是上述DataTable转JSON的C#代码:
Posted in C#, JavaScript, Technology | 11 Comments »
Posted by bianbian on 2010-08-29 12:07
本文Tags: combotree, easyui, jQuery, post
最近使用jquery-easyui 1.2,遇到一个问题。
一搜索,发现好多人在问:
问题见:http://jquery-easyui.wikidot.com/forum/t-248817/combotree-net
“combotree在.net开发中,一直不显示数据。
单独html页面就可以显示出来。同一数据文件,json格式绝对正确。”
解决问题首先要发现原因,用firebug试了一下,发现是combotree读取json的时候是用POST方法。
而.net环境不支持静态文件用POST方法获取内容。错误如下:
POST app_user.js
http://localhost:9655/js/app_user.js
405 Method Not Allowed
发现原因后,解决问题就简单很多。
找到easyui的js代码:
_41.addClass(“tree-loading”);
$.ajax({type:”post”,url:_3e.url,data:_3c,dataType:”json”,success:function(_42){
_41.removeClass(“tree-loading”);
在我的应用中,因为不需要POST方式获取json,就把type:”post”改为type:”get”即可。
已在easyui的官方论坛中说明这个问题,希望以后能多个method的设置选项。
2010.12.18 更新:
新版本jquery-easyui 1.2.1提供了tree组件的method方法设置,但是在用css自动解析方式时无效。
即通过《input class=”easyui-combotree” url=”…js” method=”get” /》调用时,仍然使用POST。
查看代码,原来是这里parseOptions时未对method进行解析:
$.fn.tree.parseOptions=function(_13c){
var t=$(_13c);
return {url:t.attr(“url”),…
加上对method的解析:
return {url:t.attr(“url”),method:(t.attr(“method”)?t.attr(“method”):”post”),…
问题解决。
标签: combotree, easyui, jQuery, postPosted in JavaScript, Technology | 2 Comments »
Posted by bianbian on 2010-05-11 06:52
本文Tags: 木马
晕,话说我这个只上少数几个网站的人也会中木马。。。。
这个wmdrtc32.dll可不是一般的木马,具有注入、驱动等多种手段
而且更狠的是,无法安全模式启动,一进安全模式就蓝屏。。。
这次中招的居然是从sourceforge.net下的一个项目的执行文件,在这里曝光一下:
http://sourceforge.net/projects/flvconverternet/
360能检测到威胁,但是没办法彻底杀干净。。。
郁闷,还没找到解决办法。。。有谁知道怎么清除告诉我一声,谢了。
我的机器不可能重装,里面eclipse有5个(java、aptana、IDL、Flex、php),visual studio有3个(vc6、2005、2008),Delphi有2个,还有python、ArcGis、oracle、ENVI、。。。
要重装直接杀了我吧。。。
这个网页对这个病毒进行了详细的分析:
http://www.threatexpert.com/report.aspx?md5=8f0020f81ab2be1e9136ce831fbc525f
最后补充:无奈下装了360杀毒软件。。。
这个无良的Sality,居然把硬盘的exe全感染了。。。一点毒品都没有!!!
Posted in Technology | 1 Comment »
Posted by bianbian on 2010-05-08 05:09
本文Tags: allowfullscreen, flex, 全屏
除了这篇文章里提到的需要传入参数 allowFullScreen=true 以外:
http://www.adobe.com/devnet/flashplayer/articles/full_screen_mode.html
经我的血泪测试(啊啊啊,我的时光啊),以下这条语句似乎必须点击操作触发才有效:
stage.displayState = StageDisplayState.FULL_SCREEN;
也就是说,用Timer之类调用这条语句都无法全屏,错误号是#2152 Full screen mode is not allowed.
应该是flash故意禁止这么做,不然一载入就全屏算是个安全问题。
郁闷的是,我准备做的这个东西就是要一载入就全屏。。。。
啊啊啊啊,怎么办?弄个巨大的按钮?点击以后全屏、隐藏按钮?
太邪恶了。。。。啊啊啊啊。。。。
Posted in Other, Technology | No Comments »
Posted by bianbian on 2010-04-16 12:42
本文Tags: C#, COM, CreateObject, PowerPoint, PPT, 进程
前阵子一直纳闷一件事,不是写了个早上10点自动生成天气会商ppt的程序嘛,不过时好时坏。具体的说:我去维护了一下后第二天是正常的,但是第三天就又不行了。看cron的日志(顺便推荐一下nnCron Lite),程序都正常启动了,但是ppt就是没有正常生成。
像我现在写的代码一般都不会有问题了,很少需要debug;看了几遍也没问题,所以很纳闷呀很纳闷。
后来没办法,开始在程序里输出log,才发现cron运行的时候(用户是SYSTEM),第二次运行:
using PPT = Microsoft.Office.Interop.PowerPoint;
_App = new PPT.Application();
这里会报COMException,真是奇怪了。
而调试的时候又是一切正常(用户是Administrator)。
最后总算捕捉到问题出现的情形:
cron运行,第一次正常产生ppt后,进程里仍驻留了PowerPNT.exe这个程序。
尽管程序是写了:
_App.Quit();
_App = null;
但是进程不会退出。不退出就算了,关键在SYSTEM用户下,第二次再跑程序的时候就会报前面提到的COMException,似乎一Quit(),这个PowerPNT.exe就挂在那里了。而在有用户界面的Administrator用户下,即使上一次进程没退出,也是可以正常工作的。
试了两种办法,可以使功能正常:
1)暴力一点,用完直接把进程kill掉:
Process ps = Process.GetProcessesByName(“POWERPNT.EXE”)[0];
ps.Kill();
2)最后不写 _App.Quit() ,让进程在内存里驻留。
最后还是选了2),毕竟服务器内存有10G,一个PPT进程也就20多M,而且PPT进程一个用户只有一个,相当于preload了,呵呵。。。
回家后找了一下文章,这个确实是Microsoft的问题。希望这篇文章对遇到这个问题的朋友有用。
如下是相关地址:
PPT2000: PowerPoint 2000 Remains in Memory After Getting a Presentation and Being Closed
powerpnt.exe remains running after OLE Quit()
GetObject and CreateObject behavior of Office automation servers
Posted in C#, Meteorology | No Comments »
Posted by bianbian on 2009-07-24 01:03
jQuery挺好用,我就不说啥了。
今天实现了“自动TAB”,下面分享一下。有人会问为啥不用jquery-ui,主要是页面css已经全弄好了,实在不想为ui再写一次;其次是ui毕竟是那么大个家伙,心疼我的性能。
HTML页面非常简单:
之后就是用jQuery自动对这个.tabBox进行处理,加上鼠标点击自动切换的功能(当然可以加上鼠标移过的选项支持,作为示例,我就没写那么完善):
Posted in JavaScript, Technology | No Comments »
Posted by bianbian on 2009-05-01 02:50
我的驱动都是手装的,只安装了必要的驱动(Think的那一大陀软件只安装了硬盘防震动的),发现XP下无法识别T400的蓝牙设备。
症状:Fn+F5没反应,bluetooth的指示灯不亮(机器左下角的硬件已经拨到启动无线、主板BIOS也已经Enable蓝牙)。
安装了蓝牙软件后一直提示“未找到buletooth设备”。
后来经过不断尝试,写出解决办法:
安装HOTKEY(鄙视Thinkpad啊。。。。非要多装个垃圾。。。。)。
找到HOTKEY的安装目录,手动运行TpFnF5.exe(其实就是按Fn+F5组合键后启动的程序,不知道为什么我全手动
装的驱动为什么不支持Fn+F5的监听)。
一运行,就提示找到新硬件,然后就可以安装Windows XP的蓝牙补充驱动和软件了,这时就可以看出蓝牙设备原来是个USB。
装完后,不能卸载HOTKEY,否则声音控制的那几个键不能用了,卸载程序太暴力。
只好在注册表里禁止开机运行。
记在这里,搜索过来确实有用的朋友请吱一声。
Posted in Technology, Windows | 3 Comments »