送外卖的大哥不要总把外卖放我在桌子上了
( Tue, 27 Apr 2010 09:45:12 +0800 )
Description:
1.入职时的工资高低不重要,只要你努力工作你会得到相应待遇的 我估计几乎找过工作的人都听过这句话,当我们确定被聘用跟公司谈工资时,他们都会说“如果以后你业绩突出、努力工作,你的报酬也会相应增加 的”,特别是当第一次找工作的时候大多数人会相信这些话,但是千万别相信。 刚入职时,你的工资就是你的全部(当然有一些岗位,比如销售或弹性工资的岗位除外,而且你入职以后大部分待遇都会跟着你的工资而浮动,工资调整 也是按你目前的工资乘于一定的百分比,保险、公积金也跟工资有关系),当你的基本工资低的时候你今后的报酬增长空间也不大。 所以,找工作时千万不要心软,多争取一些基本工资,因为这是你的所有。 我第一次找工作时就是犯了这个错误,当时心软没要求更高的工资,当时觉得基本工资比别人低几百块钱无所谓,但是后来才发现它有一个杠杆作用,尽 管以后每年你工资涨幅比别人大,但是工资还是比别人低。 比如你入职时的基本工资为4000,第二年涨幅为20% (一般的企业极少数人能涨20%),那第二年工资为4800; 如果你的同事入职时基本工资为4500,第二年涨幅为10%(一般涨幅),那他第二年工资为4950. 是不是看到差距了? 请记住,入职时工资就是你的全部,一定不能心软。 2.人事部不是你的倾谈对象 我在公司看过很多员工找人事部经理谈话,而且人事部员工可能会定期找员工谈话,问员工在工作中有没有遇到什么问题? 有没有人事部需要帮员工解决的事情? 但是请你记住, 公司人事部并不是你的倾谈对象,人事部的首要任务不是去帮助雇员,而是保护公司利益不受雇员损害,这才是最为重要的。 可能很多人认为人事部门是自己的朋友,有时甚至连对公司、对老板的真实态度都会告知于人事部门。(如果你经常这样的话,我可以肯定的说,你会跌得很惨,而 且不会有人告知你原因的) 无论人事部的人员表现得何等友好,你均要认清,你跟他们的谈话内容,他们必然会与决策部门分享这些信息,例如你的老板、经理、主管及首席执行 官。人事部门的职责就是(有时也是合法的)告知公司决策部门你那些所谓的“ 秘密”。 比如你不喜欢你目前的工作内容、或与老板的关系处理的不好,你千万不能找人事部抱怨,你应该直接跟你的老板沟通。可能当时谈话时人事部的员工会 给予同情,说自己向自己的上司反映这个情况,但是大多数情况下人事部门会将你与他们的对话原封不动地转达给你的老板,而你的老板对此是绝对无法原谅的,出 现问题首先不去找老板解决,而是直接找到人事部门,这样你的处境就很被动了,有可能被迫离开公司了。 3.你的能力并不能确保你的安全 很多公司在招聘员工或对外宣传时说我们公司注重员工的能力,提倡员工能发挥自己的主观能动性 (确实有一些公司是提倡创新的,但是极少数,大部分都只是打打口号而已)。对于刚入职的员工来说可能都会有一种心理,那就是向同事或领导展示你的才华、展 示你的能力,但是请注意: 公司或你的领导倒希望先看到你的忠诚,而不是显摆自己的能力。不管你的目的是什么,这个并不重要,如果你一贯展示你的能力,很有可能上司觉得你卖弄小聪 明、是一个不值得信赖的人,或他会感受到威胁,如果他认为你在威胁他的位置,他才不管你有多聪明,他宁愿要一个愚笨但对自己忠诚的人。 所以,当你刚入职或刚调到一个新部门的时候,千万不能先自作聪明,你首先要做的是熟悉环境熟悉上司同事的性格,即使你是一个专家也要先摆低姿 态,当然必要的是关键时刻也需要显示自己的能力,让别人觉得你是深藏不露。 韩国有一个俗语说“要想让婚姻生活幸福,就要当3年聋子,3年哑巴,3年盲人” ,因为以前在韩国婆婆对媳妇很是虐待,你必须是装聋作哑才能熬过去(当然现在已经不是这种情况了),我说这个的目的是新来乍到,你应该学会作哑装聋,刚开 始多听、多学,听到闲言碎语要装聋。 4.报销单是公司测试你的一个工具 看到这个题目或许你会纳闷?报销单也能测试员工?是的,我们平时不以为常的报销单也是公司或领导测试你的一个工具。 大部分公司都会有月底报销(餐费、交通费、***费等)或出差报销吧? 你让你的领导在你的报销单上签字的时候,他有没有说过什么?或他有没有做过什么表情? 请注意,其实大部分情况下领导们都会看你报销的金额,而且如果他们愿意的话财务部门可以随时提供每个人的报销明细。 以前看过一些在公司里面贪小便宜的人,餐费、交通费里总是放着一些自己私人用的(而不是为了公司业务)费用,或许这些费用只有100元,但正是 这些小钱会坏了你的前程。 我认识的一个老板跟我说过这样一句话:“某某员工哪天报了业务餐费,但是那天明明是我付款了。”或许这位员工太大意了。 但是我认识的老板当中也有一些人,他连你打的票上面的时间也核对,然后把属下每个员工的每月费用都记录下来,或许你报销的时候他可能不会说什 么,但是到时候你丢掉的并不仅仅是金钱。 5.在工作场合中透露私事很危险 现在我们大部分人有太多时间跟同事一起过,我们跟同事在一起的时间有时甚至超过跟家人在一起的时间,这种情况使我们有时分不清公事和私事,有时 候觉得跟同事的关系像亲人一样,跟同事分享自己的私事,孩子养育问题,个人健康问题,经济上遇到的一些困难等,但是请记住,职场就是职场,你这样做很危 险。 我的一位同事经常在工作场合说他儿子现在是青春期,跟我们描述怎么怎么叛逆,由于儿子的叛逆,每天回家以后家里的氛围都很紧张,有可能他是想通 过倾述减少来自家庭的压力,但是最近公司开始了一个重大的项目,他一直以为自己是最佳候选人负责这个项目,但是结果令人意外,公司领导层选了其他人选,为 什么呢?因为公司领导层觉得“他家里的事情已经够多了,估计他没有余力做这么重要的项目”或讲得更冷静一点就是“你连自己家里的事情都解决不了,你还能负 责这么重要的项目吗?” 如果你自己身体不太好,不需要把自己的健康情况告诉同事或上司,因为对上司来说你不健康说明你不能百分之百投入或有可能影响工作,这样你的上司 会不安,他甚至会提前想对策或再额外招人,这样的话到时候即使你的身体恢复了,你有可能会面临失去自己位置的尴尬局面。
6.如果你与老板作对,必然会被逐出公司大门
在公司里有一个对你产生很大影响的人,如果没有他的支持你不能得到公司的认可,晋升也很难甚至有可能丢掉你的工作,他就是你的顶头上司。 或许你的上司没有你聪明、没有你能干,你或许对他并不服气,但是请记住,他就像是一个守门人一样,你想绕开守门人,但最终的结果是你也失去了给 你敞开的一扇机会门。或许你觉得如果你自己足够有能力,公司领导层会让你绕开你的上司直接让你晋升或给你另外的机会,但是不要做白日梦了,公司往往会站在 你上司的角度想一个组织的稳定性,跟自己的上司斗99%受伤的都是你自己。
或许你的上司能力没有你强,但是既然他能上升到那个位置就说明他必然有一些其他方面的能力,领导力或组织管理能力或对公司的忠诚,当上司和你产 生冲突时公司会站在你上司这一边,请你记住这一点。
我的一个同事很有能力,当他调到一个新部门的时候发现上司根本没有能力而且往往做不了决定,所以很多情况下他绕开自己的上司直接跟总经理沟通, 而且在业务上总经理也认可了他,这让他很得意以为自己能力强上司不能拿他怎么样,但是有一次,上司说他工作太辛苦了,让他去马尔代夫休假(公司出钱),当 他从马尔代夫回来以后发现,他不在的时候公司发了一个人事调令,把他调到一个无关紧要的部门。
所以,不管碰到什么样的上司,如果你还想呆在这个部门,呆在这个公司,你需要配合你的上司,这样他会帮你打开一扇机会的门。
7.按了发送键? STOP 公司邮件很危险
如果我说你用公司邮箱收发的邮件都被你的上司所看到,你是不是觉得天要塌下来了? 如果不是的话,那就说明你很光明正大。其实很多人都不知道公司或上司能看到你的邮件,而且公司也绝不会给员工发个警告,说要注意互相往来的E-mail, 如果你用公司邮箱给朋友发私人邮件,或跟同事用邮件谈论上司或公司的政策,一定要睁大眼睛看一下:公司邮箱很危险。
(1)你利用公司邮箱收发邮件时,你一定要想着有可能公司某人正在看这封邮件,因为真的有些公司会定期检查一下邮件内容(当然是不告知于员工的 情况下),我不知道之前我任职的公司是不是也这样,但是我听过一些国际知名公司会定期查员工的邮件。
(2) 邮件会永远留在公司服务器: 你或许不知道,就算有些邮件发完了你后悔了马上删除了,可能在你的邮箱里面是已经没有了,公司服务器永远记录这封邮件的。
(3)按发送键的时候一定要三思:你或许通过邮件给人事部或你的上司提一些建议或者对公司制度做一些评论,一定要注意,这些邮件在一些重要时刻 会成为呈堂证供,很多情况下往往对你不利。
在公司里面我经常收到一些群发的搞笑邮件,如果以前你给同事群发过这些邮件,我建议你以后不要再发了。因为你经常发这些会让别人觉得你整天没事 做,所以才发这种邮件。或许收到这些邮件的他(或她)把这个邮件转发给一些领导了,或许他也是为了让领导搞笑、高兴,但是领导们可不会这么想,你在领导的 眼里会变成整天无所事事的人的。
8.我努力工作公司会给我加薪?No,你必须要求!
对于工资,公司和员工之间永远都不能达到双赢,很多人对自己目前的工资并不满意。那么怎么办呢? 等着公司给你加薪?很多人认为如果我做好自己的事情,我出业绩了,公司肯定会给我加薪,是的,公司会给你加薪,但是~~ 加薪的幅度肯定不能满足你的期望。
我在公司里看过很多案例,很多人都幻想“到时候”公司会给我加薪,或害怕自己提要求以后老板有什么想法所以不敢提出来,但是如果你不敢提出加 薪,公司给你的可能就是一个平均值或略高于平均值的薪水,它不是你所期待的。
当然你想要求加薪,首先你要弄清楚你的“价值”,而且必须是站在公司的角度想,如果公司认为你没有“加薪的价值”还提出要求,那你很有可能会被 裁掉的。
(1)证明你的“价值”:如果你在公司整天无所事事,那公司肯定不会给你加薪的,在要求之前你必须要证明你的“价值”,让你成为公司不可缺少的 人才。
(2)提要求: 像前面所说的一样,公司每天都想着怎么削减成本,如果你不要求公司觉得这是一件好事情,除非你要求了,公司绝不会自愿给你涨很多工资的。不要想着哪天会出 现奇迹,如果你觉得你有价值,就要求吧,如果上司认可你,他会倾听你的话语的,并且千万不能让你老板成为你的敌人, 交流的最后一定要强调我还是尊重你的决定,因为有些时候由于客观的原因老板也有身不由己的时候。
(3)不要威胁上司:如果你还想待在公司,在要求加薪时,千万不要威胁上司,比如不加薪就离开公司或跟上司说谎说已经拿了别的公司的OFFER 等,你的立场必须是“我很喜欢这个公司还有目前的业务,但是我觉得目前的工资跟我实际做的工作有差距,我希望工资能体现我的价值”等,你威胁的结果很有可 能是得打包走人。
(4)不要抱怨:即使最后的结果不是很好,比如不给你加薪或加了很少一部分,通过主动出击你可能明白了自己的短处或老板对你的看法,也让老板明 白了你不满足于现状。如果你没有打算离开这个公司,你就要现在开始弥补自己的短处或提高自己的业绩,下次再用更强烈的事实来证明,可能这次没有成功,但是 你离下次成功就不远了 .
我知道跟老板提加薪要求很难,因为你害怕“如果我要求提工资,老板会炒我或以后他对我不给好脸色怎么办呢?”,但是大多数情况下那些你想像的最 坏的情况并没有发生,大多数是ha y ending.而且即使有一些副作用,公司或老板很健忘的,因为如果这个公司的OWNER不是你上司的话,钱不是从他口袋里出来,过一两个月他就会忘掉这 件事情的。 这个我可以很肯定的告诉你,因为我曾试过。
9. 加薪必须要求,那晋升呢? NO,千万要管好自己的嘴巴~~ 既然说加薪必须要求,那晋升呢?这个千万不能要求,一旦你申请或要求晋升机会,它就会与你失之交臂,晋升不是要求的,而是上司通过认真考虑之后 给予你的。
上司还没有确信你能不能成为管理人员之前你先要求,这就像是你不从大门进,而是要跳过墙进到内部。因为如果上司还没有确信你是一个当领导的料, 但你先提出来,他会觉得你还没有成熟或认为你比起公司的利益更在意自己的私利。
领导们在决定晋升人选时除了业绩、工作能力之外,还会考察很多其他能力,比如领导能力,组织能力,对公司的忠诚度等,而且作为管理人员应该要沉 得住气、该谦虚的时候需要谦虚,你事先提出来会破坏你的形象的。
难道要坐等吗?当然不是,你可以主动负责一些重要的项目、要提出帮助其他部门面临的棘手的项目等,一定要抓住机会让上司看到你的能力,看到你的 热情。
10.如果遇到新上司要积极配合他
现在的公司经常会发生人事变动,一般来说遇到新上司属下的员工都会有一点被别人侵入的感觉,特别是当你和前任上司关系非常好的时候这种感觉更强 烈。但是如果你想在公司继续混下去,你要尽快配合新上司,熟悉他的工作作风。
很多时候新上司赴任以后下属员工都期望新来的上司适应部门原来的工作方式,但是这种事情不会发生的,大部分新上司都会对目前的工作方式进行变 更,这种时候千万不要带头抵触或提意见,所谓新官上任三把火,这时候你要做的是积极配合他,如果别的员工有不满情绪,你应该要中间周旋一下,这样新上司会 觉得你是站在他这一边的,这个第一印象特别重要。同时,新上司刚来时,你觉得新上司还不懂部门的情况,所以就出面给他一些忠告或建议,就算你是为了新上司 好,千万不要提忠告或建议,这是一个禁忌。如果他主动问你,你可以说,但是~~这种时候也尽量说事实,不要涉及到你个人的意见或负面的信息,你要让你的上 司根据这些事实自己做出决定。况且新上司问你的意见或建议,是想测试你们的忠诚,想知道你们对公司或同事的真实想法,这很有可能是一个圈套。
在这里你要记住一点的是,新上司来了熟悉业务的时候对你来说是一个很好的表现自己的机会,记住,少说,默默配合新上司的工作,他会把这些都会记 在心里的。
11. 想成为公司中最有价值的员工?那你就必须停止说“我做不了”而主动请缨 是不是人人都想成为公司的MVP? 那你必须要停止说"我做不了"而主动请缨,每次上司给你分配任务的时候你是不是说 “我没做过这个,我做不了这个”或“我现在没时间这个”。
就算是你觉得这个任务对你来说有点难,你觉得你有可能完成不了, 这种时候很多人可能条件反射地说“这个我做不来”, 千万不要这样说。 其实领导给你分配这个任务, 他肯定是考虑过你的能力,而且可能这件事情即使没做好他也有后路的。 (一般领导不会给你安排很重要而且如果搞砸了没有后路的事情) 这种时候即使你完成的不够好可能也不会损失什么, 这种时候你的态度应该是" 这个我做起来有些难, 但是我会试试的“ . 然后就得通宵加班或使上你全身力气把问题给解决。 如果你做的过程中发现按你现在的能力完成不了, 你一定要在deadline之前提交给领导(不要在最后一天提交完成度不高的***, 领导最讨厌这种人),让他有更多时间来修改。
如果你习惯性的说"我做不了",过一段时间以后他会觉得"给你任务你肯定说做不了",所以干脆不给你指派任务。
如果你们部门里有所有人都不想做的项目或任务,如果你主动请缨接收这个"烫山芋",那领导会对你刮目相看,给予你很好的评价的,当然这种烫山芋 不需要太多,只要一个就可以。
12. 想要脱颖而出?让领导感到150%满足感
在职场成功的一个秘诀, 不要只干领导让你做的事情,。如果你只是按照领导说的话100% 执行, 那你永远也无法脱颖而出。在公司做领导给你分配的任务的时候,一定要多长一个心眼, 除了他布置的任务以外, 你可以提出你的建议或者是一些改善意见, 而且完成度不能是100%, 而是要达到150%.
“做女人要像希拉里一样”中希拉里用的战略中一个很重要的战略就是: “ 让雇佣我的人或者是接受我提供的服务的人感到200%的满足感”, 这样看希拉里的目标更高。
很多人都觉得你只要做好领导分配的任务让你的领导满足100%, 做好自己分内的事情就可以了,但是如果这样做, 你在职场永远不能混好。
13. 你们公司允许言论自由吗?职场没有言论自由
或许当你第一天上班的时候人事部的人会对你我们公司很OPEN,而且在很多时候开会的时候总经理会说“大家畅所欲言吧,我会尽力满足你们的要 求、尽量解决你们所提的意见”,千万不要陷进这个陷阱。大多数时候公司是没有言论自由的,特别是当你对公司的政策,环境或制度说出了真实的想法,在公开场 合上反对公司的政策制度,公司会视你为影响公司氛围的反动派,他们觉得你很危险所以通过一些方法让你打包走人的。
我不知道有些真的开放的公司是不是有言论自由,但是我看到的版本是每当总经理跟员工面谈时都会让他们畅所欲言,但是等他们真正说出了真实想法, 马上他就失去了公司的信任。
还有一点,我经常看到一些人在电梯里跟同事或朋友说公司里面的事情,这个是一个很不专业的行为,因为不管你是在你办公室的电梯还是在客户公司电 梯,跟你一起乘坐电梯的人有可能是你上司的朋友,重要的客户,你称赞公司可以,但是反对或不满的话语千万不要在电梯里面说,不然到时候你都不知道自己为什 么死得这么快了。
14. 你的办公桌专业化吗?
现在大部分外企的办公桌都是一格一格的小格子,或许你认为办公桌是我私人的地方,我想放什么就放什么,但是请注意,办公桌也是体现你价值的地 方,所以要让你的办公桌也变得专业化。
那怎么样的办公桌才是专业化的呢?
(1)不能太乱,我在公司里看到很多人的办公桌都是乱七八糟的,各种各样的文件摆在那里,太乱的话很容易给别人这个人工作没有条理的印象。
(2)不能太整洁,如果你办公桌上什么都没有太整洁了,那别人会觉得你根本没事做。
(3)不能有太多装饰品。现在80后追求个性,办公桌上面放着各种各样的东西,曾经我的同事中有一个人的办公桌可以看作是一个礼品店,各种各样 的娃娃还有各种小东西,可能自己觉得这样很有创意,但是别人都在背后说她。
(4)跟业务无关或跟你的调不符的书籍千万不要放在让人看到的地方。
总的来说,我觉得白天你可以把你的文件或资料放在桌上,但是下班的时候一定要整理,那些重要的资料一定要放在抽屉里(最好是锁着),这样可以显 示出你做事很专业。而且现实生活中有些上司习惯下班以后转一圈看看下属的办公桌,一是看看你的桌上有没有公司重要的资料敞开着,二是通过你办公桌上的东西 看看你最近的动向(如果你桌上有“8个方法教你找好工作”之类的书,那你应该是有跳槽的打算了吧?"")
15.业绩考核结果跟你的业绩不相符?业绩也需要进行宣传
大部分公司每年都会进行1到2次(或4次)的业绩考核,业绩考核结果会影响到你的奖金/晋升等,但是很多员工发现业绩考核结果跟自己想象的完全 不一样,这是为什么呢?因为业绩考核中你主观性的判断根本不重要,重要的是你的上司怎么判断你的业绩。如果你做的工作是拿数据说话的,像销售等,可能还好 一点,但是我们很多人做的工作可能没有具体的数据来支持,这种时候你平时也要对自己的业绩进行宣传了。
我看过很多人平时都不怎么跟上司沟通,但是一到年底对考核结果不满,就找上司透漏不满,这种做法无法改变什么,你需要做的是
(1) 要跟上司做定期的沟通:跟自己的顶头上司定期沟通是很重要,因为通过这种沟通你可以让上司知道你正在做的工作,同时你也可以了解上司到底想什么,对你期待 什么。按自己的标准来做事在公司里是站不住脚的,如果想要获得好的绩效评价,你必须要满足上司的期待和标准。
(2)对自己的业绩进行宣传:大家肯定会问这个怎么宣传啊?上司不都在看着吗?但是很多时候你做的一些事情上司还真不知道,不管你多么努力工 作,如果上司不知道的话就没用,所以必要的时候一定要把一些工作进展的情况CC给上司,或我一般是采取定期把自己正在做的工作列个目录,详细描述进行情况 发给上司,上司在进行绩效考核的时候可以参照这些书面的东西。
(3)即使上司给了你一个不好的评价,你不能透漏不满。因为上司这样做肯定是有他的理由的,而且他有权力给你不好的评价。你需要做的是让上司说 出来他的意见,你要根据上司的意见来进行改正,因为你有义务迎合上司的工作方式、工作作风,谁让他是你的上司呢?
16. 你是不是公司里的“好好人”?如果一味地讨好他人,你便会失去他人的尊重
每个公司都会有好好人,他们对于所有人都笑眯眯,对于所有人的要求都不会说“NO”。如果你是新进入公司的员工,可能刚开始要得到其他同事的信 任,需要讨好别人,当然这个是需要的,但是请你不要搞混“谦虚、
摆正态度“和 ”没有自己主见的好好人“ .如果你一味地讨好他人没有一点自己的主见,你会失去他人对你的尊重,在工作中别人也会把你看作是没有真学问的空瓶。
我知道这个说起来简单做起来难,有些时候是需要讨好人,但是面对重要的事情或重要的业务时,如果你认为你的想法是正确的,你应该坚持,不能一味 同意别人的观点,要有自己的主见。
以前听朋友说他们公司有一个人,对于任何人拜托他的事情他都说好,结果到后来公司里的所有杂事都摊到他那里去了,他自己是为了这些琐事而整天忙 碌,但是别人在后面则会笑话他。当时听的时候我想,他的同事们怎么这样啊?但是一想,估计这些事情都是他咎由自取的。对于不合适的工作或拜托,或对工作的 正确的意见,如果你认为正确的话,你都应该要提出来,不能做个“好好人”,这两者的度怎么掌握,那还是看个人所处的环境或性格了。""
17.不要隐藏自己的失误
我们在工作中难免会犯一些失误,所有人都有一种心理,那就是想在别人不知道的情况下隐藏自己的失误。但是有一点请注意,如果你所犯的失误涉及到 你们部门或你的上司,你一定不能隐藏,因为很多时候隐藏自己的失误带来的是更大的失误,正所谓越遮越丑,就算你犯的是一个很低级的错误,你也要告知部门负 责人或相关人员。
我刚开始工作的时候犯了这个错误,刚开始写企划案的时候修改的次数会比较多,因为上司和我之间来来回回的版本比较多,所以最后把最终版本发给上 司以后自己发现有一些数字错了,因为是刚开始负责企划案,不想让别人知道我的疏忽,我就偷偷改了这些数字,因为第二天上司跟老总开会时我会把资料打印出来 给他们。第二天当我把打印出来的资料递给上司,上司瞅了几眼,正好看到了那些数字,他就大发雷霆。他发火不是因为我出现了失误,因为每个人都难免会失误, 问题是我想偷偷隐藏这个失误,并没有考虑上司的立场。如果当时他没发现这个,到时候给老总报告时发现了,老总正好也对这个数据有印象(因为资料是提前发给 老总的),而他自己不能自圆其说的话会有什么样的后果。
这件事情对我的启示很大。我并不是说所有的失误都要公开,如果这个事情不涉及到别人,你自己一个人就解决的话你就不用公开。但是如果这个失误会 波及到你的上司或组织,一定要提前告知他们,并想办法解决。所有人都会失误,如果你非常负责地处理你所犯的失误,它不会让你难堪,反而会给你加分的,因为 领导们觉得你很诚实而且有责任心。但是请注意,事情过去以后同样的错误你不能再犯一次。
18.休了病假或产假吗?你需要注意了
病假和产假是一个很好的福利制度,最近发现公司里怀孕的人比较多,大多数人认为法定的“病假或产假”是严格受法律保护的权利,但是你一定要注 意,这有可能会把你陷入两难境地。当然,当你休长期病假(法定的)或产假还有哺乳期间公司是不能解雇你,但是如果这段期间你处理不好的话,一旦过了这个时 期你就会上“黑名单”上。因为公司的员工数基本上是固定的,一旦你休几个月的假,这段期间你的工作会分到别人的头上或公司要额外的招人,过了几个月以后当 你回来很可能已经没有你的位置或让你做的工作了。
那么怎么样才能防止这种情况呢?
(1)假期期间,持续跟公司的联系,特别是跟你上司的联系:我知道对于刚生孩子休产假的人来说这个应该很难,因为有太多事情让你操心,但是我还 是希望你能定期抽时间跟上司或同事联系,聊一下工作的事情,或有重要的项目时如果可以的话你也可以给一些建议,但是这些,必须要让你的上司。
(2)一定要与时俱进,不能丢“业务感觉”。我们学外语的时候语感很重要,但是一旦你放了很久,你就没有语感了,这样你整个外语水平就会下降。 工作也是一样的,你必须对你的业务保持那种“业务感觉”,如果可以的话在家里也看一下相关资料(当然是在你的身体允许的情况下),因为你一旦上班,公司或 上司会有一段时间“观察”你,看你的工作能力或效率是不是跟以前一样。
我朋友的一个同事就是刚生完孩子上班之后状态特别不好,其实这个是情有可原的,因为小孩晚上闹精神状态就不太好,肯定会影响白天上班。但是公司 不能接受她不能集中精力工作,休完产假以后过了1个月后,上司就慢慢不给她工作,而且把她手头上的工作也慢慢分给别人,最后是那个同事自己受不了无所事事 就提出辞职了,这个可能就是公司所愿意的。如果她没有主动提出辞职,估计过了哺乳期以后公司也会用各种理由裁她的。
19.劳动法并不能保护你
可能很多人会觉得现在随着法律的完善,特别是随着劳动合同法的修订等,劳动法会保护我们,但是不要对劳动法抱有幻想,它并不能保护我们。因为正 所谓“上有政策下有对策”,公司的人事部或外部的人事机构会巧妙的绕过法律,保护公司的利益。
举一个例子,从新劳动合同法第39条中明确规定劳动者有下列情形之一的,用人单位可以解除劳动合同,如“严重违反用人单位的规章制度的”,用人 单位的规章制度很多样化,我们公司以前制定一个“公司员工手册”时,我们看到光是工作纪律这块就列了100多条""几乎你所想到的或没想到的都列了出来, 到时候如果公司真的要辞掉你,很简单,在这么多条当中肯定适用于你的。
而且一般公司想裁你会通过一些措施来让你“主动辞职”,比如上司经常给你分配你无法完成的任务,或上司对你的态度很冷淡让你无法忍受,你的办公 桌移到非常不好的位置,给你一个很短的期限完成一个根本不可能完成的任务,给你很低的评价等,如果有这种征兆的话,你应该好好考虑自己的职业规划并做打算 才行。
20.赢才是硬道理
说了这么多,或许给一些即将进入社会或刚进入社会的师弟师妹们一种恐惧的心理,想着公司怎么都这样啊。或许这个不是适用于所有的公司,因为我也 碰到过好的公司,好的上司。
但是不怕一万就怕万一,我希望大家都提前准备能保护自己的武器,可以绕过这些陷阱。如果你有才能,你必须要充分发挥出来并让别人知道,并让他们 给你打开一扇机会之门。
我们的人生就像是一场赌博,职场更是一场赌博,你可以选择你出的牌,从而决定自己的输赢。
在职场无望的等待天上掉馅饼不是明智之举,你应该积极地占据主动位置,学会“赌博”,学会扭转局势,因为赢才是硬道理!
( Fri, 16 Apr 2010 16:38:54 +0800 )
Description:
Silverlight4中的鼠标事件中加入了两种十分实用的事件,那就是右键事件和滚轮事件(也叫滑轮事件)。
右键事件包括:MouseRightButtonDown MouseRightButtonUp
滚轮事件包括:MouseWheel
在我们日常操作一些应用程序时,通过鼠标右键大多数是用来显示一个右键的弹出菜单,菜单的一般显示在鼠标点击时的同一位置,而滚轮事件在我们浏览网页时常可以用来改变文字或图片的缩放尺寸,基于以上两种常用的操作,我们制作一个Silverlight版本的右键菜单和滚轮缩放功能。首先我们进行简单的界面布局。
XAML:
1 Grid x:Name="LayoutRoot" 2 Background="Black"
3 Image x:Name="img" RenderTra formOrigin="0.5,0.5" 4 Source="Images/avatar_8.jpg" Stretch="Fill"
5 Image.RenderTra form
6 ScaleTra form x:Name="st"/
7 /Image.RenderTra form
8 /Image
9 TextBlock x:Name="tbTip"
10 FontSize="12"
11 FontFamily="SimSun" 12 Text="你好,请使用鼠标滚轮来调整图片大小" 13 Foreground="White" Margin="5"/
14 ListBox x:Name="lstMenu" Width="150" Height="260"
15 HorizontalAlignment="Left" 16 VerticalAlignment="Top"
17 /ListBox
18 /Grid
我们先来看一下程序功能和运行效果: 弹出右键菜单 切换不同的图片 使用滑轮调整缩放比例0.8倍 使用滑轮调整缩放比例1.8倍 首先我们定义了基于LayoutRoot的鼠标右键和滚轮事件,通过Image来显示被缩放的图片内容,右键菜单显示时会与鼠标的位置始终一致,delTa和Flag分别控制缩放的倍数和每次缩放的大小因数值。
1 public MouseWheelSample()
3 InitializeComponent();
4 this.Loaded += new RoutedEventHandler(MouseWheelSample_Loaded);
6 7 //delTa值
8 private static double delTa = 1;
9 //缩放的增量值
10 private static double flag = 0.1;
11 void MouseWheelSample_Loaded(object sender, RoutedEventArgs e)
13 //默认右键菜单是隐藏状态
14 lstMenu.Visibility = System.Windows.Visibility.Colla ed;
15 //定义鼠标滚轮事件处理
16 LayoutRoot.MouseWheel += new MouseWheelEventHandler(LayoutRoot_MouseWheel);
17 //定义鼠标左键事件处理
18 LayoutRoot.MouseLeftButtonUp += new MouseButtonEventHandler(LayoutRoot_MouseLeftButtonUp);
19 //定义鼠标右键事件处理
20 LayoutRoot.MouseRightButtonDown += new MouseButtonEventHandler(LayoutRoot_MouseRightButtonDown);
21 //定义右键菜单改变项事件处理
22 lstMenu.SelectionChanged += new SelectionChangedEventHandler(lstMenu_SelectionChanged);
23 //添加右键菜单项
24 CreateMenu();
26 void CreateMenu()
28 for (int i = 0; i 10; i++)
30 lstMenu.Items.Add(new ListBoxItem() 31 { 32 Content = string.Format("avatar_{0}.jpg", i)
36 void LayoutRoot_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
38 //取得当前菜单位置坐标
39 Point pos = e.GetPosition(LayoutRoot);
40 //定位右键菜单
41 lstMenu.Margin = new Thickne (pos.X , pos.Y , 0, 0);
42 //显示右键菜单
43 lstMenu.Visibility = System.Windows.Visibility.Visible;
44 e.Handled = true;
46 void lstMenu_SelectionChanged(object sender, SelectionChangedEventArgs e)
48 //设置图片
49 img.Source = new BitmapImage(new Uri(string.Format("Images/avatar_{0}.jpg"
50 , lstMenu.SelectedIndex),UriKind.Relative));
52 void LayoutRoot_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
54 //隐藏右键菜单
55 lstMenu.Visibility = System.Windows.Visibility.Colla ed;
57 //鼠标滚轮事件
58 private void LayoutRoot_MouseWheel(object sender, MouseWheelEventArgs e)
60 if (e.Delta 0)
62 //放大
63 delTa += flag;
65 else
67 if (delTa flag)
69 //缩小
70 delTa -= flag;
73 //提示
74 tbTip.Text = "缩放:" + delTa + "倍";
75 //应用缩放
76 st.ScaleX = st.ScaleY = delTa;
77 } 这里的右键菜单我们使用的是ListBox控件隐藏和显示来实现的,在界面上任意位置点击左键时右键菜单就会隐藏,不过这种方式的右键菜单并不是完美,例如不支持多级菜单等。你也可以使用一些三方的菜单控件,例如ContextMenu,或是干脆自己设计个UserControl做为一个右键菜单,通过这个实例相信你对Silverlight 4.0中的鼠标右键事件和滚轮事件有了一个比较完整的了解,另外设置e.Handled的值为true可以隐藏Silverlight插件本身的默认右键菜单。
希望对大家有用! 来源风云的银光志:
( Fri, 16 Apr 2010 16:16:04 +0800 )
Description:
Silverlight 4.0开始加入了System.Windows.Cli oard(剪切板操作)类,有了它我们就可以非常方便的操作剪切板的数据了,这让一些Silverlight应用程序中的文本可以COPY到Cli oard之中,同时你可以将从其它来源COPY到剪切板中的内容粘贴到Silverlight应用程序之中,在此之前我们只能通过JavaS
cript来访问剪切板。 接下来我们看一下Cli oard类为我们带来了什么,Cli oard类支持Contai Text、SetText和GetText三个方法,其中Contai Text可以返回一个bool类型的值,让我们知道剪切板目前保存的类型是否是Silverlight所支持的Unicode类型字符,SetText和GetText分别是用来设置和获GetText剪切板的文本数据。
下面我们看一个Silverlight操作剪切板的实例:
XAML:
1 Grid x:Name="LayoutRoot" Width="400" Height="200" Background="White"
2 Grid.RowDefinitio gt;
3 RowDefinition/
4 RowDefinition/
5 /Grid.RowDefinitio gt;
6 Grid.ColumnDefinitio gt;
7 ColumnDefinition /
8 ColumnDefinition Width="100"/
9 /Grid.ColumnDefinitio gt;
10 TextBox x:Name="tbCopy" Width="260" Height="30"/
11 TextBox x:Name="tbPaste" Width="260" Height="30" Grid.Row="1"/
12 Button Content="复制" Grid.Column="1"
13 Click="btnCopy_Click"
14 x:Name="btnCopy" Width="80" Height="25"/
15 Button Content="粘贴" Grid.Column="1" Grid.Row="1" 16 Click="btnPaste_Click"
17 x:Name="btnPaste" Width="80" Height="25"/
18 /Grid
1 private void btnCopy_Click(object sender, RoutedEventArgs e)
3 if (tbCopy.Text != string.Empty)
5 //设置剪切板
6 Cli oard.SetText(tbCopy.Text);
9 10 private void btnPaste_Click(object sender, RoutedEventArgs e)
12 //判断剪切板是否包括文本字符
13 if (Cli oard.Contai Text())
15 //获取剪切板
16 tbPaste.Text = Cli oard.GetText();
运行结果如图所示。 第一次运行SetText会让用户确认是否允许Silverlight操作剪切板,如果用户点击否会引发Cli oard acce is not allowed异常。 下图完成粘贴(Paste)操作。 需要注意的是Silverlight与WPF不同的是,Silverlight仅仅支持Unicode字符类型的剪切板操作,还不能像WPF那像可以对不同的类型的剪切板操作,尽管如此,但是至少是Silverlight技术的一个增强,正是这种不断的进步使更多的理想在Silverlight中变为可能。
希望对大家有用!
来源风云的银光志:
( Fri, 16 Apr 2010 16:13:48 +0800 )
Description:
在Silverlight4之前我们通常可以用在Silverlight中CALL一下JavaS
cript脚本来进行基于普通网页的打印方法,但是这种无论是打印方式效果还是精确度控制上都不能让人十分满意。 对于一个Silverlight来说,需要打印的内容往往可能是整个网页的一部页,或是整个Silverlight应用程序的某个局部内容,如果仅仅使用JavaS
cript的网页打印的话,是无法满足Silverlight应用程序中打印的需求,不过这个问题终于在Silverlight 4.0中得到了比较完美的解决。Silverlight 4运行时中引入了System.Windows.Printing命名空间,这个命名空间中包含一个名为PrintDocument的类,它可以完成Silverlight应用程序中有“针对性”的打印任务。 下面我们用GRID制作一个简单的报表。
XAML:
1 Grid x:Name="LayoutRoot" Background="White"
2 Grid.RowDefinitio gt;
3 RowDefinition Height="*"/
4 RowDefinition Height="40"/
5 /Grid.RowDefinitio gt;
6 !--简单的报表--
7 Border BorderBrush="Black" BorderThickne ="1"
8 Grid x:Name="reportGrid" Grid.Row="0" ShowGridLines="True"
9 Grid.Resource gt;
10 Style TargetType="TextBlock"
11 Setter Property="VerticalAlignment" Value="Center"/
12 Setter Property="HorizontalAlignment" Value="Center"/
13 /Style
14 /Grid.Resource gt;
15 Grid.RowDefinitio gt;
16 RowDefinition Height="30"/
17 RowDefinition Height="30"/
18 RowDefinition Height="30"/
19 RowDefinition Height="30"/
20 RowDefinition Height="30"/
21 /Grid.RowDefinitio gt;
22 Grid.ColumnDefinitio gt;
23 ColumnDefinition Width="100"/
24 ColumnDefinition Width="200"/
25 ColumnDefinition Width="300"/
26 /Grid.ColumnDefinitio gt;
27 TextBlock Text="产品编号" Grid.Row="0" Grid.Column="0"/
28 TextBlock Text="产品名称" Grid.Row="0" Grid.Column="1"/
29 TextBlock Text="产品大类" Grid.Row="0" Grid.Column="2"/
30 TextBlock Text="1" Grid.Row="1" Grid.Column="0"/
31 TextBlock Text="数码相机" Grid.Row="1" Grid.Column="1"/
32 TextBlock Text="相机" Grid.Row="1" Grid.Column="2"/
33 TextBlock Text="2" Grid.Row="2" Grid.Column="0"/
34 TextBlock Text="笔记本电脑" Grid.Row="2" Grid.Column="1"/
35 TextBlock Text="电脑" Grid.Row="2" Grid.Column="2"/
36 /Grid
37 /Border
38 !--打印按钮控件--
39 Button x:Name="btnPrint" Grid.Row="1" Click="btnPrint_Click"
40 Width="100" Height="25" Content="打印报表"/
41 /Grid
如图所示。 C#:
1 public PrintSample()
3 InitializeComponent();
4 this.Loaded += new RoutedEventHandler(PrintSample_Loaded);
6 7 void PrintSample_Loaded(object sender, RoutedEventArgs e)
9 //创建打印文档对象
10 pd = new System.Windows.Printing.PrintDocument();
11 //创建打印事件,用于指定打印的文档对象作用的对象
12 pd.PrintPage += new EventHandlerSystem.Windows.Printing.PrintPageEventArg gt;(pd_PrintPage);
15 void pd_PrintPage(object sender, System.Windows.Printing.PrintPageEventArgs e)
17 //指定打印文档对象的页面
18 e.PageVisual = reportGrid;
20 private System.Windows.Printing.PrintDocument pd 21 private void btnPrint_Click(object sender, RoutedEventArgs e)
23 //定义打印的文档名称
24 pd.DocumentName = "产品报表";
25 //调用打印方法,开始打印
26 pd.Print();
运行结果如图所示。 使用后台代码来实现打印方法,主要依靠System.Windows.Printing.PrintDocument这个类来完成,PrintDocument具有PrintPage事件,你需要创建这个事件的事件处理方法,并在这个事件里指定打印文档的对象页面,在这里就是reportGrid的GRID控件,其中DocumentName是你要打印文档的名称,最终调用Print方法开始打印,并显示打印窗口,如果你没有***打印机,系统会提示你先***打印机,如图所示。 PrintPage事件中具有StartPrint、EndPrint事件和HasMorePages属性,StartPrint和EndPrint事件是在打印开始前和打印结束后引发,而HasMorePages属性是一个bool类型的属性,当PrintPage事件多次运行时,如果值为true情况下,事件将等待至HasMorePages为false时才继续引发下一次事件。这里需要说明的是,PrintDocument不仅支持GRID对象,连Image对象也可以通过PrintDocument打印出来。 来源风云的银光志:
( Fri, 16 Apr 2010 16:10:50 +0800 )
Description:
WebBrowser是Silverlight4版本中加入的一个运行在Silverlight应用程序内部的浏览器控件,这是一个非常有用的控件,当我们Silverlight应用程序需要在某个位置显示一些HTML内容或是一个网址网页的时候,WebBrowser就派上用场了。
通过在Silverlight应用程序嵌入WebBrowser控件的方法可以弥补Silverlight应用程序不能显示HTML网页的不足,下面我们来通过一个Silverlight版本的“浏览器”来介绍如何在Silverlight4应用程序使用WebBrowser控件,这个示例分别介绍了如何使用WebBrowser来显示一段固定的HTML代码和一个URL网页。
首先完成浏览器的XAML布局。
XAML:
1 Grid x:Name="LayoutRoot" Background="White"
2 Grid.RowDefinitio gt;
3 RowDefinition Height="35"/
4 RowDefinition Height="40"/
5 RowDefinition Height="*"/
6 /Grid.RowDefinitio gt;
7 Grid.ColumnDefinitio gt;
8 ColumnDefinition Width="*"/
9 /Grid.ColumnDefinitio gt;
10 Grid Grid.Row="1" Grid.Column="0"
11 Grid.RowDefinitio gt;
12 RowDefinition Height="35"/
13 /Grid.RowDefinitio gt;
14 Grid.ColumnDefinitio gt;
15 ColumnDefinition Width="80"/
16 ColumnDefinition Width="*"/
17 ColumnDefinition Width="60"/
18 /Grid.ColumnDefinitio gt;
19 !--浏览器功能栏--
20 TextBlock Height="20" FontWeight="Bold" Text="输入URL"/
21 TextBox Grid.Row="0" Grid.Column="1" 22 x:Name="tbUrl" Height="25" FontSize="14"/
23 Button x:Name="btnGo" Click="btnGo_Click" 24 Content="GO" FontWeight="Bold" Grid.Row="0" Grid.Column="2"
25 Width="50" Height="30"/
26 /Grid
27 !--浏览器标题--
28 Border Background="Yellow" 29 Grid.Row="0" Grid.Column="0"
30 TextBlock Grid.Row="0" Grid.Column="0" 31 Width="300" Height="25" FontWeight="Bold" 32 FontSize="16"
33 Text="欢迎使用Silverlight浏览器 V1.0"/
34 /Border
35 !--WebBrowser控件--
36 WebBrowser x:Name="wb1" Grid.Row="2" Grid.Column="0"/
37 /Grid
1 public WebBrowserSample()
3 InitializeComponent();
4 this.Loaded += new RoutedEventHandler(WebBrowserSample_Loaded);
6 7 void WebBrowserSample_Loaded(object sender, RoutedEventArgs e)
9 SetHTML();
12 private void SetHTML()
14 System.Text.StringBuilder = new System.Text.StringBuilder(@"
15 a href=http://blog.csdn.net/dotfun target=_blank
16 大家好,这是一段HTML代码,欢迎访问我的博客/ah1这是Silverlight4
17 的WebBrowser控件显示的HTML代码!/h1");
18 //WebBrowser控件应用HTML代码
19 wb1.NavigateToString( .ToString());
22 private void btnGo_Click(object sender, RoutedEventArgs e)
24 if (tbUrl.Text.Trim() != string.Empty)
26 //使用WebBrowser控件打开一个URL
27 wb1.Navigate(new Uri(tbUrl.Text.Trim(), UriKind.RelativeOrA olute));
29 else
31 Me ageBox.Show("请先输入URL!");
运行结果如图所示。 运行后你可以发现HTML代码没有出现在WebBrowser控件之中,并且显示
,这是提示用户这个Silverlight应用程序的HTML部分不可见,这是因为Silverlight客户端应用程序的安全性关系,让WebBrowser能正常运行必须基于Silverlight的OutofBrowser(脱离浏览器Silverlight应用程序),所以我们要把这个Silverlight应用程序配置为支持OutofBrowser的Silverlight项目
,在应用程序上通过右键将这个应用程序***到用户计算机后,在桌面上运行这个应用程序,这时正确的结果就显示出来了,如图所示。 在Silverlight中用WebBrowser显示HTML代码 在Silverlight中用WebBrowser显示一个网页WebBrowser控件包含两个重要方法,分别为NavigateToString和Navigate,它们分别是显示一段HTML在WebBrowser中和显示一个网页在WebBrowser之中。
使用WebBrowser控件需要了解两点重要因素,一是WebBrowser必须运行在OutofBrowser模式之中,二是WebBrowser只能通过Width和Height属性呈现一个矩形外观。 来源风云的银光志:
( Fri, 16 Apr 2010 16:06:10 +0800 )
Description:
富文本控件是TextBox控件的升级版,它不但支持用户的普通文本,还支持样式和添加更丰富的内容,例如:论坛发贴、写博客,这些都需要图文结合的输入框来完成,所以它是开发Web应用程序界面必不可少的东西,在Silverlight 4.0版本之前你可以使用三方的RichTextBox控件, 下载:
,不过在Silverlight4中已将这个控件内置进来,它称之为RichTextArea,富文本域控件,本章中我们就使用RichTextArea制作一个常见的文本输入框,这个输入框除了可以输入简单的文字,还可以设置取选区的文本样式,添加图片和超链接元素。
在Silverlight中添加一个RichTextArea是没有我们平时看到的那些样式按钮,它的外观只是一个简单的TextBox,所以需要我们把功能按钮添加在界面上,这样才是一个RichTextBox控件,运行结果如下: XAML:
1 Grid x:Name="LayoutRoot" Background="White" Width="600" Height="300"
2 StackPanel
3 StackPanel Orientation="Horizontal" Background="Gray"
4 Button x:Name="bt " Width="30" Height="30" Content="B" 5 FontWeight="Bold" Margin="2"/
6 Button x:Name="btni" Width="30" Height="30" Content="I" 7 FontStyle="Italic" Margin="2"/
8 Button x:Name="btnu" Width="30" Height="30" Margin="2"
9 Button.Content
10 TextBlock TextDecoratio ="Underline" Text="U"/
11 /Button.Content
12 /Butto gt;
13 Button x:Name="btnimg" Width="60" Height="30" Content="插入图片" Margin="2"/
14 Button x:Name="btnlink" Width="60" Height="30" Content="插入链接" Margin="2"/
15 /StackPanel
16 RichTextArea x:Name="richTextBox" Height="265"
17 /RichTextArea
18 /StackPanel
19 /Grid
你可以在RichTextArea里添加一些默认的文本,RichTextArea的文本与TextBox不同,在RichTextArea里的文本需要包含在一个段落标记Paragraph之中,整个RichTextArea的内容都表现为一个个的Paragraph,Paragraph支持以下的XAML内容做为RichTextArea的内容:
Hyperlink
InlineUIContainer
LineBreak
下面是一段使用段落标记的例子:
1 Paragraph这是Silverlight的富文本控件/Paragraph
2 Paragraph
3 Hyperlink
4 NavigateUri="
5 TargetName="" FontSize="15"这是一个Hyperlink/Hyperlink
6 /Paragraph
7 Paragraph
8 Span FontSize="15" Foreground="Red"
9 Ru gt;这是Span标记/Ru gt;
10 /Spa gt;
11 /Paragraph
12 Paragraph
13 InlineUIContainer x:Name="uicontainter"/
14 LineBreak/
15 Run FontSize="14"使用LineBreak/Ru gt;
16 LineBreak/
17 Ru gt;使用LineBreak/Ru gt;
18 /Paragraph
InlineUIContainer是一个比较特殊的元素,它是一个RichTextArea中的“容器”,如果我们想在富文本框中添加Image、Button或Grid之类的XAML元素时,InlineUIContainer用派上用场了,因为它可以包含任何XAML元素,这样RichTextArea的内容就打破了Paragraphr的局限性,这里我们添加了一个InlineUIContainer用来显示用户的图片。
运行结果如图: 完成我们的RichTextBox控件界面布局后,加入相应的控件功能的后台代码。
1 public RichTextBoxSample()
3 InitializeComponent();
4 this.Loaded += new RoutedEventHandler(RichTextBoxSample_Loaded);
5 } 6 7 //注册富文本控件按钮事件
8 void RichTextBoxSample_Loaded(object sender, RoutedEventArgs e)
10 this.bt .Click += new RoutedEventHandler(bt _Click);
11 this.btni.Click += new RoutedEventHandler(btni_Click);
12 this.btnimg.Click += new RoutedEventHandler(btnimg_Click);
13 this.btnlink.Click += new RoutedEventHandler(btnlink_Click);
14 this.btnu.Click += new RoutedEventHandler(btnu_Click);
15 } 16
17 void btnlink_Click(object sender, RoutedEventArgs e)
19 //输入链接路径
20 string url = HtmlPage.Window.Prompt(String.Empty);
21 //添加图片插入到InlineUIContainer之中
22 Hyperlink hl = new Hyperlink()
24 NavigateUri = new Uri(url, UriKind.RelativeOrA olute)
26 hl.Inlines.Add(url);
27 //添加段落标记
28 Paragraph pg = new Paragraph();
29 pg.Inlines.Add(hl);
30 //添加段落标记到RichTextArea
31 richTextBox.Blocks.Add(pg);
32 } 33
34 void btnimg_Click(object sender, RoutedEventArgs e)
36 //输入图片路径
37 string url = HtmlPage.Window.Prompt(String.Empty);
38 //添加图片插入到InlineUIContainer之中
39 Image img = new Image()
41 Width = 200,
42 Height = 150,
43 Source = new BitmapImage(new Uri(url, UriKind.RelativeOrA olute))
45 uicontainter.Child = img;
46 } 47
48 void btni_Click(object sender, RoutedEventArgs e)
50 richTextBox.Selection.SetPropertyValue(TextElement.FontStyleProperty, FontStyles.Italic);
51 } 52
53 void bt _Click(object sender, RoutedEventArgs e)
55 richTextBox.Selection.SetPropertyValue(TextElement.FontWeightProperty, FontWeights.Bold);
56 } 57
58 void btnu_Click(object sender, RoutedEventArgs e)
60 richTextBox.Selection.SetPropertyValue(TextElement.TextDecoratio Property, TextDecoratio .Underline);
61 } 运行结果如图所示。 加粗 下划线 倾斜
插入图片: 用户输入图片URL 图片添加到RichTextArea
插入链接: 用户输入超级链接URL 超级链接添加到RichTextArea
RichTextArea具有Selection属性,这是一个很有用的属性,它可以取得富文本框中用户取选的文本单位,这样一来,我们就可以使用SetPropertyValue来改变用户选取区域的样式,Selection还有Text属性,可以取得用户所选的文本字符串,我们可以用来做“复制”、“粘贴”之类的功能。
以上就是一个简单功能的Silverlight版本RichTextBox,建议大家在此基础上进一步扩展它的功能做出更完美的Silverlight富文本控件。 来源于风云的银光志: 大家可以多去学习一下
( Fri, 16 Apr 2010 15:39:46 +0800 )
Description:
商务应用程序开发 Silverlight 4 将自己定位成在 Web 上建立商务应用程序的自然选择: 适用于应用程序开发人员的新功能 * 广泛的打印支持启用了书面报表和文件,以及虚拟打印检视,不论屏幕的内容为何。 * 包含超过 60 个可自定义、可设定样式组件的一整组表单控件。新的控件包括了具有超链接、影像和编辑与屏蔽文本框的 RichTextbox,以进行复杂的字段验证。增强的控件包括了具有可排序/可重设大小的栏和复制/贴上列的 DataGrid。 * WCF RIA Services 引入企业等级的网络和数据存取,以建立多层式架构 (N-Tier) 应用程序,包括了交易、数据分页、WCF 和 HTTP 增强。 * 本地化的增强,包括了双向文字、由右至左支持和复杂的脚本,例如阿拉伯文、希伯来文和泰文以及 30 种新语言。 * .NET Common Runtime (CLR) 现在可让同一份编译好的程序代码无须修改地执行于桌面和 Silverlight 上。 * 增强的数据系结支持,包括了透过在系结之中进行数据群组/编辑和字符串格式设定,来增加弹性和产能。 * 受管理的扩充性架构支持建立大型的复合应用程序。 * 独一无二的 Silverlight 工具支持,这是 Visual Studio 2010 中的新功能。包括了可完整编辑的设计接口、拖放式数据系结、自动绑定控件、数据源选择、与 Expr
e ion Blend 样式资源整合、Silverlight 项目支持和完整的
liSe e。 开发人员工具 * 可绘制控件和配置的可完整编辑的设计接口。 * 丰富的属性方格,和新的数值编辑器。 * 数据系结的拖放支持,以及自动建立绑定控件,例如 listbox、datagrid.新的数据源窗口和选择器。 * 根据建立于 Expr
e ion Blend 中的设计人员资源,轻松挑选样式和资源,以建立美观的应用程序。 * 针对 Silverlight 应用程序提供内建的项目支持。 * 具备 XAML 和 C# 和 VB 语言的完整 intellise e 的编辑器。 提供更丰富、更互动的经验 Silverlight 已经是使用中的一个广泛平台,可同时针对应用程序和单纯的媒体案例 (包括了 HD 质量、透过 Smooth Streaming 的互动视讯) 建立丰富的经验。Silverlight 4 提供额外的功能来让您建立更丰富、更吸引人的高效能互动经验和创新的媒体经验: * 流畅的接口增强可透过动画效果提升应用程序的使用性。 * 网络摄影机和麦克风可让您在聊天或客户服务应用程序等情况中分享视讯和音频。 * 音频和视讯本机录制功能无须服务器互动即可撷取 RAW 视讯,因而启用了众多的用户互动和通讯案例,例如视频会议。 * 以复制和贴上或拖放等功能将数据放到您的应用程序内。 * 长列表现在可以用鼠标滚轮轻松地卷动。 * 透过右键内容菜单等新功能支持传统的桌面互动模型。 * 支持 Google 的 Chrome 浏览器。 * 效能优化意指 Silverlight 4 应用程序可以更快地启动,并且执行速度是相等的 Silverlight 3 应用程序的 200%。 * 多重触控支持可将许多笔势和触控互动整合至使用者经验之中。 * 多播网络可让企业降低串流广播事件的成本,例如公司会议和训练,并且完美地与现有的 Windows Media Server 串流基础结构互通。 * PlayReady 增强了以 Silverlight DRM 来保护 H.264 媒体的内容。 * 音频/视讯串流的输出保护可让内容拥有者或散发者确保受保护的内容只能经由安全的视讯联机来检视。 超越浏览器 Silverlight 3 率先提供新等级的多样化因特网应用程序 (Rich Internet A licatio ) 以运作于桌面上,完全不需要额外的程序代码或 Runtime。Silverlight 4 更扩充此功能: 针对沙盒应用程序 * 将 HTML 放在您的应用程序内,以便更紧密地与 Web 服务器的内容整合,例如电子邮件、说明和报表。 * 提供「弹出式」通知窗口的支持,以便让应用程序在用户运作另一个应用程序时,透过任务栏上的弹出窗口,告知状态或变更信息。 * 脱机 DRM 可让具备 PlayReady 技术的现有 Silverlight DRM 脱机工作。受保护的内容可以透过持续性的授权来提供,如此使用者可以立即脱机,并开始享用其内容。 * 控制 UI 的各个层面,包括了窗口设定,例如开始位置、大小和组件区块。 针对受信任的应用程序 * 读取和写入档案至使用者的 MyDocuments、MyMusic、MyPictures 和 MyVideos 文件夹 (或非窗口平台的对等文件夹),例如储存媒体档案和取得报表的本机副本。 * 执行 Office 等其他桌面程序,例如要求 Outlook 传送电子邮件、传送报表给 Word 或传送数据给 Excel。 * COM 自动化可透过呼叫应用程序组件来存取装置和其他系统能力;例如存取 USB 安全性
阅读机。 * 新的用户接口,可在标准的 Silverlight 沙盒之外要求应用程序权限存取。 * 组策略对象可让组织调整哪些应用程序可拥有提高的信任。 * 在更多样化的信息站和媒体应用程序的全屏幕模式中提供完整的关键词支持。 * 网络的增强允许您在没有安全策略档案下跨网域存取。
( Sat, 10 Apr 2010 14:08:48 +0800 )
Description: 近来发现很多朋友感叹微软Silverlight技术的更新的真快,Silverlight 3.0正式版发布不久,Silverlight4.0的Beta1版就出来了,其实这是微软的一个惯例。 我们从Visual Studio2010发布后我们可以看出来,在VS2010中同时支持Silverlight3.0和Silverlight4.0两个版本,Silverlight3.0是直接支持的(就是***完VS2010就自带了开发Silverlight项目的Tools工具),而Silverlight4.0则需要单独***Silverlight 4.0 Tools for VS2010 ,由此可见Silverlight1.0和2.0是Silverlight技术的一个“过渡版”。 Silverlight3.0和4.0将是未来时间的稳定版本,从4.0和3.0比较来看,Silverlight3.0比较注重功能,而Silverlight4.0更侧重“细节”,例如新的Binding模式、打印、右键和滚轮事件、复合变形、HTML控件、WCF增强、富文本控件等等,这些将是Silverlight4.0的重点提升。
这些文章都是转载于银光中国,大家在有时间的时候可以多去看看多去学习一下。 这个学习的地址 ( Mon, 5 Apr 2010 12:47:23 +0800 )
Description:
尽量使用代码控制;
尽可能早的计划好所有的用户控件;这样可以提前预期控件之间相互运作情况,便于整合项目;
尝试分割不同功能到不同的用户控件; 现在无论国内国外,开发队伍通常来说都是3个人以上,分割不同功能到不同的用户控件,可以减少相互之间的冲突和影响; 另外,在测试的时候发现问题,对于不同的小功能区域,方便Bug定位;另外也方便功能模块的再利用。 这个是现在Web项目开发的一个常用规则。
尽量少用Loaded事件;
初始化的问题; 在每个用户控件中,需要创建Initialize和Deinitialize公共方法。 在实际项目中,你可以把Event Handlers或者必须要运行一次的代码,添加到Initialize方法中; 另外,也可以不用添加新的构造函数,直接传递参数到Initialize方法,通过New MyUserControl()使用这些参数; 最后,你可以使用Deinitialize方法清空控件,如果你调用了需要自定义的控件,使用Deinitialize方法是非常必要的;
不要在XAML添加Event Handles; 因为XAML是属于前台设计人员,而Event Handling属于开发人员,所以,Event Handler非常容易使用代码进行添加;另外一个原因,如果你使用代码添加了一个Event Handler,当该事件的控件名称改变或者该控件被删除,编译器会提出错误说明; 但是如果把Event Handler放在XMAL,当该事件的控件名称改变或者该控件被删除,项目将返回一个常规异常,没有详细错误信息提示;
认真设计项目布局; 我项目起步时,浪费了许多时间,在项目布局上,如果,布局合理,一定能节省很多开发时间;这样就需要开发人员对Grid,StackPanel,Canvas,Border,Popup,ScrollViewer,DockPanel等布局控件有深刻的了解;通常,你会发现,Grid非常适合做Header,Footer,Sidebar等等; 而复杂的布局结构,建议使用Canvas,需要注意的是,如果Canvas的高和宽是固定的,这样就很容易造成布局混乱,这点一定要注意;如果需要调整子控件的布局,推荐使用StackPanel;设计Silverlight项目布局,通常我们习惯使用Expr
e ion Blend,但是,强烈建议你,在使用Blend后,需要在VS下对XAML代码进行一次核查,这样可以确认各个控件的参数正确,同时也可以删除Blend自动产生的多余代码;
尽量避免使用固定的高度值和宽度值;在不设置固定的高度和宽度时候,Silverlight会根据你的解析度自适应浏览器界面,同时,各个控件将会自动缩放,以及排列位置; 另外,尽量不要使用负值的Margin,防止样式变形;
不要将机密信息放在代码中; 众所周知,Silverlight是一个客户端技术;用户在使用的同时,将会下载XAP文件到本地,这样非常容易被反编译; 所以,一定不要把敏感的机密数据放在代码中;
不要使用Image作为按钮控件; 在Silverlight1.1中没有Button控件,所以我们使用Image作为按钮; 但是在Silverlight2或者3中,已经提供了Button控件,我们需要尽量使用Button控件; 这个原则也适合其他控件,尽量使用Silverlight提供的控件,方便状态管理和事件管理;
在项目性能上,尽量减少XAP的尺寸,提高加载项目速度,另外,减少各个用户控件的载入时间; 避免使用Windowle =True 使用Web Service进行服务器数据存取; 因为Silverlight是运行在用户主机的,所以不能直接和服务器或者数据库进行通讯,当前有很多种方式可以存取服务器信息和数据库,但是推荐使用Web Service(WCF),个人认为这个方法是最简单,最快捷的;
小心使用Isolated Storage; 一定不要把机密信息放在Isolated Storage;
( Wed, 10 Mar 2010 16:41:06 +0800 )
Description:
Silverlight内置了十几种常见拉丁字体,如Arial,Comic Sa MS,Courier New,Lucida Sa Unicode等。默认使用的字体是Portable User Interface。这是一种复合字体,Silverlight会根据文字的语言选择最佳的字体。但是,这种字体通常在显示中文的时候非常难看。下图是默认的显示效果:
所以,我们需要在程序中手动指定文字的字体。
三种字体引用方式
如果使用的字体是Silverlight内置支持的,那么无需做任何配置,直接指定FontFamily即可。内置的字体有Arial,Arial Black,Comic Sa MS,Courier New,Lucida Sa Unicode,Times New Roman,Georgia,Trebuchet MS,Verdana和Webdings。使用这些字体不依赖于客户端操作系统。
同时Silverlight也支持引用本地系统一部分字体(注意,不是全部本地字体都支持)。如Segoe UI,Symbol,Tahoma,宋体,等等。使用这些字体需要注意,其他客户端系统中可能不存在这些字体,如英文操作系统一般没有宋体。那么如果你使用了宋体那就会有问题。
如果你需要让Silverlight应用程序在不同系统下都有一致的字体,或者你想用某些字体,但是这些字体不支持本地引用(如隶书),那么Silverlight允许你将字体文件打包到应用程序中,可以放在Xap包中,也可以放在ClientBin目录下,然后在代码中动态下载并引用这些字体文件。这样牺牲的代价就是Xap包会变得较大。
为了更好显示中文,我需要为上面的文字显式指定使用“宋体”。代码如下:
Grid x:Name="LayoutRoot" Background="White" TextBlock Text="Hello,测试中英文混合显示效果" FontSize="26" FontFamily="宋体"/ /Grid
Ctrl+F5运行,却发现字体没有发生明显的变化。说明字体的设置不起作用。我又测试了一下将宋体打包到应用程序中。为了简单,我使用Blend3帮我自动完成这个操作。
选中一种字体之后,勾选字体面板下面的Embed复选框即可将指定字体打包到Silverlight工程中去。这个时候工程中自动生成了Fonts文件夹,里面放置了宋体这个字体文件。
同时,Xaml也发生了变化,由引用系统的宋体改成引用Fonts.zip包中的宋体了。如下:
Grid x:Name="LayoutRoot" Background="White" TextBlock Text="Hello,测试中英文混合显示效果" FontSize="26" FontFamily="Fonts/Fonts.zip#宋体"/ /Grid
运行结果发现字体依旧。
后来查阅Silverlight官方文档的时候,看到字体列表一节时,突然想到,是不是因为字体名不规范?不能直接使用“宋体”,而应该使用Simsun。赶紧测试了一下,发现果然是这个问题。只需将上面两个示例代码中的宋体改成Simsun即可正确显示出宋体的效果来。
后来又测试了一下其它中文字体,如微软雅黑,如果直接这样写中文的话是显示不出来的,一定要写“Microsoft YaHei”。可恶的Blend,帮我自动生成的代码居然有这种莫名其妙的错。不知道这算是Silverlight和Blend的Bug还是设计使然。
在Silverlight中,如果要引用字体,一定不能直接写上中文,否则不起任何作用。如果你是在英文操作系统下的话,你可以打开字体文件(C:\windows\fonts文件夹下,Silverlight支持ttf,odttf和otf这几种后缀的字体文件),其中的字体名称一栏就是FontFamily所使用的名称。只是在中文操作系统下,支持中文的字体在这里会显示为中文名,而不是英文名。
常见中文字体名和英文字体名的对应关系如下:
常见中文字体与FontFamily映射表
宋体(英文不等宽)
宋体(英文等宽)
NSimsun
FangSong
微软正黑体
Microsoft JhengHei
细明体
MingLiu
微软雅黑
Microsoft YaHei
LiSu(只能打包,不支持本地系统引用)
华文彩云
STCaiyun(只能打包,不支持本地系统引用)
华文琥珀
STHupo(只能打包,不支持本地系统引用)
华文隶书
STLiti(只能打包,不支持本地系统引用)
华文新魏
STXinwei(只能打包,不支持本地系统引用)
华文行楷
STXingkai(只能打包,不支持本地系统引用)
YouYuan(只能打包,不支持本地系统引用)
( Tue, 22 Dec 2009 15:53:02 +0800 )
Description: Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法。你可以使用这个文件实现应用程序安全性以及其它一些任务。下面让我们详细看一下如何在应用程序开发工作中使用这个文件。我们项目也使用到了这个文件。这里写的很清楚,大家可以了解这个文件。这篇文章是来源于CSDN的我看了一下这个写很清晰大家应该多看看文章。
Global.asax 位于应用程序根目录下。虽然 Visual Studio .NET 会自动插入这个文件到所有的 ASP.NET 项目中,但是它实际上是一个可选文件。删除它不会出问题——当然是在你没有使用它的情况下。.asax 文件扩展名指出它是一个应用程序文件,而不是一个使用 a x 的 ASP.NET 文件。
Global.asax 文件被配置为任何(通过 URL 的)直接 HTTP 请求都被自动拒绝,所以用户不能下载或查看其内容。ASP.NET 页面框架能够自动识别出对Global.asax 文件所做的任何更改。在 Global.asax 被更改后ASP.NET 页面框架会重新启动应用程序,包括关闭所有的浏览器会话,去除所有状态信息,并重新启动应用程序域。
Global.asax 文件继承自HttpA lication 类,它维护一个HttpA lication 对象池,并在需要时将对象池中的对象分配给应用程序。Global.asax 文件包含以下事件:
· A lication_Init:在应用程序被实例化或第一次被调用时,该事件被触发。对于所有的HttpA lication 对象实例,它都会被调用。
· A lication_Di osed:在应用程序被销毁之前触发。这是清除以前所用资源的理想位置。
· A lication_Error:当应用程序中遇到一个未处理的异常时,该事件被触发。
· A lication_Start:在HttpA lication 类的第一个实例被创建时,该事件被触发。它允许你创建可以由所有HttpA lication 实例访问的对象。
· A lication_End:在HttpA lication 类的最后一个实例被销毁时,该事件被触发。在一个应用程序的生命周期内它只被触发一次。
· A lication_BeginRequest:在接收到一个应用程序请求时触发。对于一个请求来说,它是第一个被触发的事件,请求一般是用户输入的一个页面请求(URL)。
· A lication_EndRequest:针对应用程序请求的最后一个事件。
· A lication_PreRequestHandlerExecute:在 ASP.NET 页面框架开始执行诸如页面或 Web 服务之类的事件处理程序之前,该事件被触发。
· A lication_PostRequestHandlerExecute:在 ASP.NET 页面框架结束执行一个事件处理程序时,该事件被触发。
· A lcation_PreSendRequestHeaders:在 ASP.NET 页面框架发送 HTTP 头给请求客户(浏览器)时,该事件被触发。
· A lication_PreSendContent:在 ASP.NET 页面框架发送内容给请求客户(浏览器)时,该事件被触发。
· A lication_AcquireRequestState:在 ASP.NET 页面框架得到与当前请求相关的当前状态(Se ion 状态)时,该事件被触发。
· A lication_ReleaseRequestState:在 ASP.NET 页面框架执行完所有的事件处理程序时,该事件被触发。这将导致所有的状态模块保存它们当前的状态数据。
· A lication_ResolveRequestCache:在 ASP.NET 页面框架完成一个授权请求时,该事件被触发。它允许缓存模块从缓存中为请求提供服务,从而绕过事件处理程序的执行。
· A lication_UpdateRequestCache:在 ASP.NET 页面框架完成事件处理程序的执行时,该事件被触发,从而使缓存模块存储响应数据,以供响应后续的请求时使用。
· A lication_AuthenticateRequest:在安全模块建立起当前用户的有效的身份时,该事件被触发。在这个时候,用户的凭据将会被验证。
· A lication_AuthorizeRequest:当安全模块确认一个用户可以访问资源之后,该事件被触发。
· Se ion_Start:在一个新用户访问应用程序 Web 站点时,该事件被触发。
· Se ion_End:在一个用户的会话超时、结束或他们离开应用程序 Web 站点时,该事件被触发。
这个事件列表看起来好像多得吓人,但是在不同环境下这些事件可能会非常有用。
使用这些事件的一个关键问题是知道它们被触发的顺序。A lication_Init 和A lication_Start 事件在应用程序第一次启动时被触发一次。相似地,A lication_Di osed 和 A lication_End 事件在应用程序终止时被触发一次。此外,基于会话的事件(Se ion_Start 和 Se ion_End)只在用户进入和离开站点时被使用。其余的事件则处理应用程序请求,这些事件被触发的顺序是:
· A lication_BeginRequest
· A lication_AuthenticateRequest
· A lication_AuthorizeRequest
· A lication_ResolveRequestCache
· A lication_AcquireRequestState
· A lication_PreRequestHandlerExecute
· A lication_PreSendRequestHeaders
· A lication_PreSendRequestContent
· 执行代码
· A lication_PostRequestHandlerExecute
· A lication_ReleaseRequestState
· A lication_UpdateRequestCache
· A lication_EndRequest
这些事件常被用于安全性方面。下面这个 C# 的例子演示了不同的Global.asax 事件,该例使用A lication_Authenticate 事件来完成通过 cookie 的基于表单(form)的身份验证。此外,A lication_Start 事件填充一个应用程序变量,而Se ion_Start 填充一个会话变量。A lication_Error 事件显示一个简单的消息用以说明发生的错误。
protected void A lication_Start(Object sender, EventArgs e) {
A lication["Title"] = "Builder.com Sample";
protected void Se ion_Start(Object sender, EventArgs e) {
Se ion["startValue"] = 0;
protected void A lication_AuthenticateRequest(Object sender, EventArgs e) {
// Extract the forms authentication cookie
string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie authCookie = Context.Request.Cookies[cookieName];
if(null == authCookie) {
// There is no authentication cookie.
retur }
FormsAuthenticationTicket authTicket = null;
authTicket = FormsAuthentication.Decrypt(authCookie.Value);
} catch(Exception ex) {
// Log exception details (omitted for simplicity)
retur }
if (null == authTicket) {
// Cookie failed to decrypt.
retur }
// When the ticket was created, the UserData property was a igned
// a pipe delimited string of role names.
string[2] roles
roles[0] = "On
roles[1] = "Two"
// Create an Identity object
FormsIdentity id = new FormsIdentity( authTicket );
// This principal will flow throughout the request.
GenericPrincipal principal = new GenericPrincipal(id, roles);
// Attach the new principal object to the current HttpContext object
Context.User = principal;
protected void A lication_Error(Object sender, EventArgs e) {
Re o e.Write("Error encountered.");
这个例子只是很简单地使用了一些Global.asax 文件中的事件;重要的是要意识到这些事件是与整个应用程序相关的。这样,所有放在其中的方法都会通过应用程序的代码被提供,这就是它的名字为Global 的原因。
这里是前面的例子相应的 VB.NET 代码:
Sub A lication_Start(ByVal sender As Object, ByVal e As EventArgs)
A lication("Title") = "Builder.com Sample"
End Sub
Sub Se ion_Start(ByVal sender As Object, ByVal e As EventArgs)
Se ion("startValue") = 0
End Sub
Sub A lication_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
' Extract the forms authentication cookie
Dim cookieName As String
cookieName = FormsAuthentication.FormsCookieName
Dim authCookie As HttpCookie
authCookie = Context.Request.Cookies(cookieName)
If (authCookie Is Nothing) Then
' There is no authentication cookie.
Dim authTicket As FormsAuthenticationTicket
authTicket = Nothing
authTicket = FormsAuthentication.Decrypt(authCookie.Value)
Catch ex As Exception
' Log exception details (omitted for simplicity)
End Try
Dim roles(2) As String
roles(0) = "On
roles(1) = "Two"
Dim id As FormsIdentity
id = New FormsIdentity(authTicket)
Dim principal As GenericPrincipal
principal = New GenericPrincipal(id, roles)
' Attach the new principal object to the current HttpContext object
Context.User = principal
End Sub
Sub A lication_Error(ByVal sender As Object, ByVal e As EventArgs)
Re o e.Write("Error encountered.")
End Sub
Global.asax 文件是 ASP.NET 应用程序的中心点。它提供无数的事件来处理不同的应用程序级任务,比如用户身份验证、应用程序启动以及处理用户会话等。你应该熟悉这个可选文件,这样就可以构建出健壮的ASP.NET 应用程序。
本文来自CSDN博客,转载请标明出处:
本文来自CSDN博客,转载请标明出处:
( Fri, 11 Dec 2009 23:14:53 +0800 )
Description:
1.OA流程未配置。
2.数据迁移工作未作,必须回沈阳才能做完。
3.代码搜索review.错误很多需要修改
4.手册有问题
5.录像不全,英文未改
6.红头文件,业务流程,电子签章(需要一个文档,关于电子签章采购的说明,给信息中心。),需要彻
底做完并实现,文档录像一并。
( Fri, 11 Dec 2009 23:13:43 +0800 )
Description:
1.程序不要把错误吞了,一定要throw,这个大家都没写。
2.页面格式一定要是utf-8格式,不要使用gb2312。包括.cs、.a x
3.自己做的页面页头一定要加上制作者,起码知道这个是谁做的。
4.自己的程序做完自己一定测试,别说没有测试,自己都不测试谁给你测试。
5.SQL语句不要写在台.cs文件里面一定要放在一个固定的地方,1=1可以用但是用法完全不对,好好看看原始代码。
6.程序中有同时操作2次数据库的操作一定要在这2吃操作的上面开启事务然后在进行操作。
7.JS不要使用切割字符串的办法处理数据,使用json对象进行处理,后台再解析前台的json对象进行其他操作。
8.代码写的要有必要的注释,不是每行都有,但是起码的业务逻辑必须要有注释。
9.老的方法现在都不使用了,自己要更新下自己的知识库把那些淘汰的方法都去除掉。比如说后台输出js打印不要再使用老方法
10.版本控制器,我们使用的版本控制器,是来控制版本的,不是代码保存工具切忌,每次更新可以使你了解到你改那个程序,跟新过那些程序的代码。
11.样式表不要依赖美工制作的东西,要学会自己做页面,这些不是克服不了的问题。
12.循环不要乱用,一个方法里的循环不嵌套2层以上如果多的话就封成方法,这样也便于修改,如果都写在一起那么错了都不知道怎么修改。
13.文档,谁写的功能模块谁来负责写这个模块的,使用手册,需求文档,设计文档,页面原型。具体需要仍需要增加,自己写的程序如果这些都知道,那么程序你是按照什么写的?
14.使用手册一定要录像,这个工具很多我也给过大家。 录像要一步一步录制不要着急图省事。认真点制作,程序如果修改了那么录像也一定要重新录制。
15.很多东西大家都不是很了解,例如:HQL语句不会?这个问题在事先我没说,我以为大家都了解这些,但是我发现大家还是不会。所以有些东西我有必要再婆婆妈妈的说一遍,以后别嫌我墨迹。
16.周报以后按照最新的格式去写。不要总说没有需求,就算没有也要自己写个需求,做这么长时间的程序了,起码也应该了解一点了,也可以上网找些资料。以后不要谈需求,不管客户这么想我们一定要有自己认为合理的需求,我也可以根据我们提出的需求跟客户解释。
17.程序中的警告再也不要出现,就是***的提示部分,什么变量声明未使用了什么的,自己预先编译一下,再出现这样的情况,严惩不贷。
18.例如先插入一个值返回主键使用 Scope_IDENTITY 使用这样方式
程序重构一下,新的需求新的方式
( Tue, 8 Dec 2009 14:45:40 +0800 )
Description:
contextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
table border on
contextmenu=return(false) td> o /table 可用于Table
2. < ody on
selectstart="return false" 取消选取、防止复制
paste="return false" 不准粘贴
copy="return false;" on
cut="return false;" 防止复制
5. link rel="Shortcut Icon" href="favicon.ico" IE地址栏前换成自己的图标
6. link rel="Bookmark" href="favicon.ico" 可以在收藏夹中显示出你的图标
7. i ut style="ime-mode:disabled" 关闭输入法
8. 永远都会带着框架
< cript language="JavaS
cript" !--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// -- /script
9. 防止被人frame
SCRIPT LANGUAGE=J***AS
CRIPT !--
if (top.location != self.location)top.location=self.locatio // -- /SCRIPT
10. 网页将不能被另存为
< oscript *** src="/*.html"; /*** /noscript
11. i ut type=button value="/查看网页源代码
click="window.location = "view-source:"+ "http://www.pconline.com.cn""
12.删除时确认
a href=""javas
cript :if(confirm("确实要删除吗?"))location="boos.a ?&am areyou=删除&am age=1""删除 /a
13. 取得控件的绝对位置
//Javas
< cript language="Javas
function getIE(e){
var t=e.offsetTo var l=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTo l+=e.offsetLeft;
alert("top="+t+"/nleft="+l);
/script
//VBScript
< cript language="VBScript" !--
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName "BODY"
set a = a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
msgbox "top="&am t&am chr(13)&am "left="&am l,64,"得到控件的位置"
end function
-- /script
14. 光标是停在文本框文字的最后
< cript language="javas
function cc()
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.colla e(true);
r.select();
/script
i ut type=text name=text1 value="123" on
focus="cc()"
15. 判断上一页的来源
cript :
document.referrer
16. 最小化、最大化、关闭窗口
object id=hh1 cla id="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"
< aram name="Command" value="Minimize" /object
object id=hh2 cla id="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"
< aram name="Command" value="Maximize" /object
OBJECT id=hh3 cla id="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"
PARAM NAME="Command" value="/Close" /OBJECT
i ut type=button value="/最小化 on
click=hh1.Click()
i ut type=button value="/blog/最大化 on
click=hh2.Click()
i ut type=button value=关闭 on
click=hh3.Click()
本例适用于IE
17.屏蔽功能键Shift,Alt,Ctrl
< cript
function look(){
if(event.shiftKey)
alert("禁止按Shift键!"); //可以换成ALT CTRL
document.on
keydown=look;
/script
18. 网页不会被缓存
META HTTP-EQUIV="pragma" CONTENT="no-cache"
META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"
META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT"
或者 META HTTP-EQUIV="expires" CONTENT="0"
19.怎样让表单没有凹凸感?
i ut type=text style="""border:1 solid #000000"
i ut type=text style="border-left:none; border-right:none; border-top:none; border-bottom:
1 solid #000000" /textarea
20. div < a gt am layer的区别?
div(division)用来定义大段的页面元素,会产生转行
用来定义同一行内的元素,跟 div的唯一区别是不产生转行
layer是 的标记,ie不支持,相当于 div
21.让弹出窗口总是在最上面:
< ody on
blur="this.focus();"
22.不要滚动条?
让竖条没有:
< ody style="overflow:scroll;overflow-y:hidden"
让横条没有:
< ody style="overflow:scroll;overflow-x:hidden"
两个都去掉?更简单了
< ody scroll="no"
23.怎样去掉图片链接点击后,图片周围的虚线?
a href="#" on
Focus="this.blur()" img src="/logo.jpg" border=0 /a
24.电子邮件处理提交表单
form name="form1" method="post" act
ion=mailto:****@***.com
enctype="text/plain"
i ut type=submit
25.在打开的子窗口刷新父窗口的代码里如何写?
window.opener.location.reload()
26.如何设定打开页面的大小
< ody on
load="top.resizeTo(300,200);"
打开页面的位置 < ody on
load="top.moveBy(300,200);"
27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
{background-image:url(/logo.gif); background-repeat:no-repeat;
background-position:center ackground-attachment: fixed}
28. 检查一段字符串是否全由数字组成
< cript language="Javas
cript" !--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// -- /script
29. 获得一个窗口的大小
document.body.clientWidth; document.body.clientHeight
30. 怎么判断是否是字符
if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");
31.TEXTAREA自适应文字行数的多少
textarea rows=1 name=s1 cols=27 on
propertychange
="this.style.posHeight=this.scrollHeight"
/textarea
32. 日期减去天数等于第二个日期
< cript language=Javas
function cc(dd,dadd)
//可以加上错误处理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
cc("12/23/2002",2)
/script
33. 选择了哪一个Radio
HTML < cript language="v cript"
function checkme()
for each ob in radio1
if ob.checked then
window.alert ob.value
end function
/script BODY
INPUT name="radio1" type="radio" value="/style" checkedStyle
INPUT name="radio1" type="radio" value="/blog/barcode"Barcode
INPUT type="button" value="check" on
click="checkme()"
/BODY /HTML
34.脚本永不出错
SCRIPT LANGUAGE="JavaS
!-- Hide
function killErrors() {
return true;
window.on
error = killError // --
/SCRIPT
35.ENTER键可以让光标移到下一个输入框
i ut on
keydown="if(event.keyCode==13)event.keyCode=9"
36. 检测某个网站的链接速度