Subscribe: 博客园-英雄好汉的布拉格
http://heroman.cnblogs.com/rss.aspx
Added By: Feedage Forager Feedage Grade B rated
Language: Chinese simplified
Tags:
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: 博客园-英雄好汉的布拉格

博客园_英雄好汉的布拉格



Nhibernate研究



Updated: 2012-06-08T13:32:49Z

 



导出EXCEL数据时防止数值变科学计数的办法 - 菩提树

2011-10-12T17:55:00Z

网上有很多说法,最简单直接正确的做法是判断一下是否为数值以及长度,然后给单元格加上以下CSS即可:mso-generic-font-family:auto; mso-font-charset:134; mso-number-format:"\@"; mso-background-source:auto; mso-pattern:auto;这个办法我是从:http://www.cnblogs.com/joinger/articles/1322931.html这个博客学的,感谢这位网友

网上有很多说法,最简单直接正确的做法是判断一下是否为数值以及长度,然后给单元格加上以下CSS即可:

mso-generic-font-family:auto;   mso-font-charset:134;    mso-number-format:"\@";   mso-background-source:auto;   mso-pattern:auto;

这个办法我是从:http://www.cnblogs.com/joinger/articles/1322931.html 这个博客学的,感谢这位网友

(image)

本文链接:http://www.cnblogs.com/Heroman/archive/2011/10/13/2209599.html,转载请注明。




EXTJS4的MVC的简单理解 - 菩提树

2011-09-27T20:09:00Z

模型Model: 最为简单,只是单纯定义数据结构,模型定义以下内容:字段名称,类型,模型间的关联关系,模型的Proxy API,数据检验器Validators数据Store: 实际上是模型的实例,主要定义和包含以下内容:1,可以在data属性中存放具体的数据,可以指定一个ID给Store2,模型名称3,数据存取API4,Proxty API视图View: 定义了界面布局及控件,它并不定义事件,一些涉及到数据的控件,还可以在此指定采用的数据ID控制器Controller: 实际上,数据和视图是被控制器控制的资源,控制器主要负责:1,Stores属性:指定要载入的数据2,Views属性:指定要载入模型Model: 最为简单,只是单纯定义数据结构,模型定义以下内容:字段名称,类型,模型间的关联关系,模型的Proxy API,数据检验器Validators 数据Store: 实际上是模型的实例,主要定义和包含以下内容:1, 可以在data属性中存放具体的数据,可以指定一个ID给Store2, 模型名称3, 数据存取API4, Proxty API 视图View: 定义了界面布局及控件,它并不定义事件,一些涉及到数据的控件,还可以在此指定采用的数据ID 控制器Controller: 实际上,数据和视图是被控制器控制的资源,控制器主要负责:1, Stores属性:指定要载入的数据2, Views属性:指定要载入的视图3, Models属性:指定要载入的模型4, Init方法:初始化视图5, 定义各个事件处理成员,在事件处理中,可以调用store或model的方法来存储或读取数据,使用control方法查找视图中控件,并委托事件处理 MVCD的关键是,把数据的定义跟数据分开,把视图的定义跟事件的定义分开,让模型负责自身的有效校验,让数据负责自己的载入和存储,每个部分完全独立,再使用控制器来载入各部分,按需要初始化视图,委派事件,调用数据中定义的方法载入和保存数据等。应用程序的定义:Name:名字appFolder:类所在文件夹launch:应用程序初始化方法,通常在这里要建立一个Viewport,然后将View加入其中,已经定义的视图,在这里,可以直接通过xtype来引用,如果设置了autoload的话,会自动载入以appname为名称的视图 类的定义:先定义namespace: Ext.ns再定义类本身:Ext.define(className, members);类定义中最重要的属性:Extension:定义父类Constructor:定义构造器Config:配置Set属性名/get属性名/apply属性名/reset属性名:apply属性名会在set之后调用,作后置处理Static:定义静态成员和方法Mixins: 要继承的其他类名Alias:别名本文链接:http://www.cnblogs.com/Heroman/archive/2011/09/28/2193741.html,转载请注明。[...]



ASP导出EXCEL乱码?试试这个 - 菩提树

2011-09-27T19:23:00Z

网上的方法有说加meta的,是有用,不过,不够直接,甭管你asp文件是utf-8还是gb2312,加入下面两句就搞掂:response.Charset="GB2312"session.CodePage=936简单明了,把会话代码页和输出字符集改一下就好了,够直接吧。以上方法本人已经验证。

网上的方法有说加meta的,是有用,不过,不够直接,

甭管你asp文件是utf-8还是gb2312,加入下面两句就搞掂:

response.Charset="GB2312"
 session.CodePage=936

简单明了,把会话代码页和输出字符集改一下就好了,够直接吧。以上方法本人已经验证。

(image)

本文链接:http://www.cnblogs.com/Heroman/archive/2011/09/28/2193740.html,转载请注明。




EXTJS记事本:当CompositeField遇上RowEditor - 菩提树

2011-07-30T14:36:00Z

用RowEditor作批量编辑器时,遇到一个问题,想要在Roweditor中使用三个下拉列表组成级联式选择控件,原因是客户的物料种类非常多,有一千种之多,如果单纯用一个Combobox,那么在实际使用中,很难快速找到一个物料,所以,我使用包含物料分类和物料品牌的两个combobox来组成级联式筛选。问题恰恰出在这儿,如果在roweditor的一个字段中用多个控件,就要处理每个控件的初始化,Change事件。网上目前还未找到有人有好的解决办法。经过3天的调试,我终于解决了问题,把我的代码贴出来:vareditor=newExt.ux.grid.RowEditor({saveText:'确用RowEditor作批量编辑器时,遇到一个问题,想要在Roweditor中使用三个下拉列表组成级联式选择控件,原因是客户的物料种类非常多,有一千种之多,如果单纯用一个Combobox,那么在实际使用中,很难快速找到一个物料,所以,我使用包含物料分类和物料品牌的两个combobox来组成级联式筛选。问题恰恰出在这儿,如果在roweditor的一个字段中用多个控件,就要处理每个控件的初始化,Change事件。网上目前还未找到有人有好的解决办法。经过3天的调试,我终于解决了问题,把我的代码贴出来: var editor=new Ext.ux.grid.RowEditor({        saveText: '确定',        cancelText:"放弃",        commitChangesText: '请确定或放弃修改',        errorText: '错误'    });                //当取消时,根据关键字段的值是否为空而删掉空记录        editor.on("canceledit",function(editor,pressed)            {                if(pressed && editor.record.get("materialid")==0)                {                    store.remove(editor.record);                                        }                            },this);                /*        afterstart 这个事件是自己加的,因为如果在beforeedit事件中想对自己的控件初始化,那是不可能的,因为beforeedit时,roweditor控件还没有渲染,所以,我加了afterstart事件,该事件在roweditor显示后立即调用,所以,可以在这里进行初始化。        要注意的是通过roweditor控件进行遍历来访问自定义的composite控件        editor.items.items[0],这里并不是我写重了,而是roweditor控件的items竟然不是一个集合,而是一个对象,在这里我也耗了一些时间,最后还是通过firebug输出editor对象发现的        editor.items.items[0]就是compositefield组件,通过该组件的items集合,就可以以标准的形式访问其子组件,接下来,就可以初始化了        [...]



EXTJS框架中由于ID重复引起的各种异常的解决方法 - 菩提树

2011-06-24T12:05:00Z

很多人使用EXTJS中的Tabpanel遇到一个问题:那就是在点击Tabpanel后,有时会发现Tabpanel出现错误,或无法Destroy已经关闭的panel,发现已经关闭的panel 中的组件出现在了页面其他地方。这个问题,网上问的人非常多,却没有答案,我是无意间发现问题的关键的。Tabpanel中的panel关闭却无法销毁其子组件,原因是panel中可能存在与其他panel中组件ID相同的组件,这是非常常见的问题了。EXTJS基本上是靠ID来识别组件的,假如你在panel1中有个ID:"keyword"的textfield,而panel2中有个ID相同的textfi

很多人使用EXTJS中的Tabpanel遇到一个问题:

那就是在点击Tabpanel后,有时会发现Tabpanel出现错误,或无法Destroy已经关闭的panel,发现已经关闭的panel 中的组件出现在了页面其他地方。这个问题,网上问的人非常多,却没有答案,我是无意间发现问题的关键的。

Tabpanel中的panel关闭却无法销毁其子组件,原因是panel中可能存在与其他panel中组件ID相同的组件,这是非常常见的问题了。

EXTJS基本上是靠ID来识别组件的,假如你在panel1中有个ID:"keyword"的textfield,而panel2中有个ID相同的textfield ,那么,当你关闭panel2,由于extjs发现panel2中的ID:"keyword"组件在panel1中仍然使用中,是不会销毁掉它的,于是它成为一个孤立的对象,从而造成混乱。

无论如何,你得时刻记着,任何时候,必须确保对象ID是唯一的。这有两个做法:

1,不给对象指定ID,然后使用组件的find方法通过其他属性来查找对象,例如find("name","role"),结果产生一个array,当然,你的属性是唯一的,那你就可以用find("name","role")[0]这种形式引用组件。

2,你也可以用父组件ID+子组件ID的形式来指定子组件,这个方法更好,并且extjs内部就是这么做,子组件的ID变成了:this.id+"_role",注意,这里的this是指父组件。在实例时,由于父组件的ID指定的一定是唯一的,所以,即便实例了两次同一个组件,两个实例的子组件却拥有唯一ID。从而可以很好的处理ID重复问题 

(image)

本文链接:http://www.cnblogs.com/Heroman/archive/2011/06/24/2089311.html,转载请注明。




关注杂交应用程序 - 菩提树

2010-11-19T17:58:00Z

Adobe Air+jquery或Adobe Air+Extjs将为我们带来什么?很多以前不方便实现的特性,这回,全部可以解决了,这点上,Adobe的眼光不可谓不前瞻了,而且Flash+As, HTML+Js,PDF+js这种多样化的开发手段,定会吸引一大批开发者.

Adobe Air+jquery或Adobe Air+Extjs将为我们带来什么?

很多以前不方便实现的特性,这回,全部可以解决了,这点上,Adobe的眼光不可谓不前瞻了,而且Flash+As, HTML+Js,PDF+js这种多样化的开发手段,定会吸引一大批开发者. 

(image)

本文链接:http://www.cnblogs.com/Heroman/archive/2010/11/20/1882337.html,转载请注明。




绕人的python汉字问题 - 菩提树

2010-09-09T16:41:00Z

要显示汉字?首先在第一行声明一下字符集吧,一般是这样:# -*- coding:utf-8 -*-不过,光声明是没用的,你的文件,一定要存为UTf-8编码,不要是ANSI(记事本)要输出一个含有汉字的变量值,像下面这样:print unicode("退出程序(Quit the program)","utf-8")挺奇怪的,更奇怪的在后面呢,假如用raw_input接收输入的话,提示信息如果是中文,...

要显示汉字?

首先在第一行声明一下字符集吧,一般是这样:

# -*- coding:utf-8 -*-

不过,光声明是没用的,你的文件,一定要存为UTf-8编码,不要是ANSI(记事本)

要输出一个含有汉字的变量值,像下面这样:

print unicode("退出程序(Quit the program)","utf-8") 

挺奇怪的,更奇怪的在后面呢,假如用raw_input接收输入的话,提示信息如果是中文,你会发现显示乱码,怎么办?像下面这样:

keyword=raw_input(u"请输入关键词".encode("gb2312"))

实在是奇怪的很,不过,确实实用。

(image)

本文链接:http://www.cnblogs.com/Heroman/archive/2010/09/10/1822894.html,转载请注明。




原创:嵌入图片的HTML内容在FLASH AS3中正确显示的最佳解决方案 - 菩提树

2010-08-19T19:02:00Z

做一个项目,遇到这个该死的问题,尝试了几乎所有解决方法,几近崩溃,终于找到完美解决方案。因为在网上,无论中文还是英文,搜索了无数遍,都没人给出正确答案,所以,在此记下,但愿能帮到跟我一样遇到这个问题的人们。1,TextField + UIScrollBar方法:该方法对于普通的HTML没有问题,对于文本就足以显示滚动条的情况,也没有问题,但如果你像我一样,只有一句话介绍,加一个图片,你就会发现,怎...做一个项目,遇到这个该死的问题,尝试了几乎所有解决方法,几近崩溃,终于找到完美解决方案。因为在网上,无论中文还是英文,搜索了无数遍,都没人给出正确答案,所以,在此记下,但愿能帮到跟我一样遇到这个问题的人们。1,TextField + UIScrollBar方法:该方法对于普通的HTML没有问题,对于文本就足以显示滚动条的情况,也没有问题,但如果你像我一样,只有一句话介绍,加一个图片,你就会发现,怎么样也无法显示滚动条。图片被切掉一半,原因是Htmltext中的img图片是后载入的,也就是说,你加上scrollbar时,textfield的高度根本不足以显示滚动条。为了解决这个问题,我甚至试过用getimagerefrence方法监听img图片的载入事件,然后重新用uiscrollbar.update来重绘滚动条。但是,很遗憾,理论上行得通的办法,实际上,是没有用的。2,直接用textareatextarea实际上就是上面的组合。结果不用说啦,还是没法解决。3,终极方案:Textfield+ScrollPane最终的解决方法,是建一个textfield,将其multiline和wordwrap设为true,再将其width设置好,将autosize设置成left,将scrollpane的source指向该textfield。最终,问题终于正常解决。注意:multiline一定要设置成true,不然,你的所有段落都会合并成一段的,这个小故事让我卡了半天才反应过来。下面是我的一小段实现这个功能的AS3代码。 var t_content:TextField=new TextField();    t_content.x=0;    t_content.y=0;    t_content.multiline=true;    t_content.border=true;    t_content.styleSheet=ContentStyle;    t_content.width=box.width;    t_content.autoSize="left";    t_content.condenseWhite=true;    t_content.wordWrap=true;    t_content.htmlText=p_content;    box.addChild(t_content);    var aSp:ScrollPane = new ScrollPane();    box.addChild(aSp);    aSp.source = t_content;    aSp.horizontalScrollPolicy=ScrollPolicy.OFF;    aSp.setSize(t_content.width, 340);  本文链接:http://www.cnblogs.com/Heroman/archive/2010/08/20/1804120.html,转载请注明。[...]



关于用Combo.Setvalue初始化COMBO值的备忘 - 菩提树

2010-06-01T20:50:00Z

遇到这个问题,调试了半天,不行,在网上搜了搜,找到了答案,备忘了下。话说,这还真有点搞笑呢,这不变成运行时中,无法用Setvalue间接选择某个ITEM了嘛,这样的设计,实在是莫名其妙,须知setvalue不光光在初始化时要用。感谢JAVAEYE,感谢原文的作者:http://seraph115.javaeye.com/blog/234075原文如下:缘由:在基于Ext构建的表单(form)中使用...

遇到这个问题,调试了半天,不行,在网上搜了搜,找到了答案,备忘了下。

话说,这还真有点搞笑呢,这不变成运行时中,无法用Setvalue间接选择某个ITEM了嘛,这样的设计,实在是莫名其妙,须知setvalue不光光在初始化时要用。

感谢JAVAEYE,感谢原文的作者:http://seraph115.javaeye.com/blog/234075

原文如下:

 

 缘由:在基于Ext构建的表单(form)中使用了Combobox组件,提交时使用hiddenName方式,后台可接收到所选的valueField值,实现保存功能。 
问题:在修改页面中须将值回填到combobox中,但combobox显示的是valueField值而不是displayField值。解决的办法是在combobox的store中添加listener回填显示值。

listeners: {  
      load: 
function() {  
           typeCombo.setValue(typeCombo.getValue());  
      }  
}

 

 

(image)

本文链接:http://www.cnblogs.com/Heroman/archive/2010/06/02/1749679.html,转载请注明。




关于富士康N连跳事件的思考 - 菩提树

2010-05-21T09:06:00Z

在CNBETA上看没人说到点子上忍不住说一句不是因为钱不是因为工作累不是跟某个厂关联是因为一个年轻人背井离乡去一个没有朋友和家人的地方,做一种停不下来无滋无味的重复工作,要经受一堆规矩,生活找不到东趣,压力无处诉说,向前看不到光明,向后无处可退,没有表达和选择自己情感和生活的方式,基本上是失去自由的自由人,或有思想的机器人,可想而知,心里的困惑有多强烈,这种情况下,若不是人生经历坎坷,阅历丰富,或...在CNBETA上看没人说到点子上
忍不住说一句
不是因为钱
不是因为工作累
不是跟某个厂关联
是因为一个年轻人背井离乡去一个没有朋友和家人的地方,做一种停不下来无滋无味的重复工作,要经受一堆规矩,生活找不到东趣,压力无处诉说,向前看不到光明,向后无处可退,没有表达和选择自己情感和生活的方式,基本上是失去自由的自由人,或有思想的机器人,可想而知,心里的困惑有多强烈,这种情况下,若不是人生经历坎坷,阅历丰富,或者有野心有毅力的人,是不可能抗得住的
所以各位不要骂人家傻,把你放到他的境况下,你也一样,人人都想过自杀,但多数人因为不是孤立的,所以可以走出来,可以看到生活的美好,但他们是一个一个机器化的人,自杀是他们对被机器化的人生和命运的抗争,你可以机器化我的肉体,但无法禁锢我的灵魂
如果说只是工作累,我得告诉你,我家乡有很多大学生在汽车生产线上工作,一样很开心,关键是他们累过在家人和朋友那里释放到压力,下了班,打打牌,喝喝酒,可以享受自由,有情绪家人也可开导好,深圳打工者的悲剧在于他们被孤立了,很容易陷进去
要说累,大家可以看看周围像我这样创业的小人物,天天加班到两点,甚至病倒,但从未想过自杀,生活本是不易的,丛林法则,富士的员工抱怨累只是一个形式的渲泻,其实他们知道到哪里个厂都是一样,只要做人,只要有竞争,只要有欲望,就摆脱不了,关键是他们的生活被机器化了,之前的打工者更顺从于这种命运,但新生代不甘于这样
富士事件是悲剧,但不只是他们的悲剧,而是社会的悲剧,一代被机器化的人抗争命运的悲剧,是高速发展的经济和落后的社会文明进程的悲剧
(image)

本文链接:http://www.cnblogs.com/Heroman/archive/2010/05/21/1741064.html,转载请注明。