Van Pan

导航

2009年2月4日 #

Javascript在IE中的有趣错误

摘要: 今天在其它BLOG上看到有讨论JS在IE 6.0内核中的错误,其中很多是作者自己没有搞清楚或者其它原因所导致的,但是其中有一个关于 很简单不是吗?然后加入下面这个JS函数function CloneNode(){ var d1=document.getElementById("DDL_Dept"); var d2 = document.getElementById("DDL_Dept02"); alert(d1.innerHTML); alert(d2.innerHTML); d2.innerHTML = d1.innerHTML; aler... 阅读全文

posted @ 2009-02-04 22:20 Van Pan 阅读(142) 评论(0) 推荐(0) 编辑

2009年1月8日 #

动手做ASP.NET 2.0服务器端控件——AutoCheckTreeView(二)接口设计

摘要: 感谢谭振林先生所著《道不远人——深入解析ASP.NET 2.0控件开发》讨论完了功能,我们来思考一下这个控件应该怎么设计。1,给控件取个名字吧,因为一开始小凡只是考虑了自动勾选功能,所以就叫它AutoCheckTreeView。2,显然继承自TreeView要比重新做一个更方便,那好,AutoCheckTreeView : TreeView就这么决定了。3,它要开放一些什么新增接口吗?想一下,有的时候需要自动勾选功能,有的时候不需要自动勾选,那应该留下一个开关属性。4,数据绑定,那比如要重载DataSource属性和DataBind()方法喽。5,我们不能要求用户必须以规定的格式数据源来绑定我 阅读全文

posted @ 2009-01-08 19:36 Van Pan 阅读(147) 评论(0) 推荐(0) 编辑

动手做ASP.NET 2.0服务器端控件——AutoCheckTreeView(一)功能讨论

摘要: 感谢谭振林先生所著《道不远人——深入解析ASP.NET 2.0控件开发》ASP.NET现在使用的朋友是越来越多了,而其中一些很“方便”的控件事实上在实际使用过程中却不是那么方便。还好,我们有办法改善它们,或者是继承现有控件后扩展,或者是继承Control或者CompositeControl重写一个新的控件。这些方法请参见《道不远人》,小凡用在此书中学到的知识重写了很多控件,今天为大家介绍——AutoCheckTreeView顾名思义,AutoCheckTreeView是由TreeView继承而来。相信大家都用过TreeView,好处自然不用多说,那我们来回忆批斗一下这个控件的不足之处吧。一,T 阅读全文

posted @ 2009-01-08 19:03 Van Pan 阅读(122) 评论(0) 推荐(0) 编辑

2009年1月7日 #

从C# 3.0说以人为本(四)—— Lambda表达式

摘要: 重新回到那个用了很多次的语句: IEnumerablenumQuery=numbers.Where((number)=>number%2==0); 我们知道了Where是扩展方法,但是后面的(number) => number % 2 == 0又是什么?功能一看就明白了,就是选择是偶数的数字,但是深层机理又是什么样子的? 查一下MSDN,原来这种表达式也是3.0新增的东东,叫Lambda表达式。它的语法小凡就不再介绍,MSDN中有很详细的说明,再说也是狗尾续貂。但是,除了用Lambda表达式,像这样的函数还能传入什么形参?是不是只能用Lambda表达式了呢? 答案当然是不会的,如果 阅读全文

posted @ 2009-01-07 23:12 Van Pan 阅读(188) 评论(0) 推荐(0) 编辑

从C# 3.0说以人为本(三)—— 扩展方法

摘要: 说完了LINQ的语言支持和语法灵活,下面就是一个非常有用的东东——扩展方法(Extension Method)。还记得我们看了好几遍的LINQ吧,下面这个:varnumQuery=fromnuminnumberswhere(num%2)==0selectnum;第一次讨论的时候我们讲到它等同于:IEnumerablenumQuery=numbers.Where((number)=>number%2==0);如果用2.0很熟悉的朋友,会知道Where函数是3.0新增的,同时新增的还有Sum,Count等一系列方法,在MSDN 2008中,我们可以看到这些函数归属于IEnumerable泛型 阅读全文

posted @ 2009-01-07 23:09 Van Pan 阅读(144) 评论(0) 推荐(0) 编辑

从C# 3.0说以人为本(二)—— LINQ语法结构

摘要: 接着上一次的程序我们继续分析探讨,LINQ语句如下:varnumQuery=fromnuminnumberswhere(num%2)==0selectnum;小凡第一次看到这个语句时,第一个念头是:为什么select要放在最后?事实上,写惯了SQL,大家都觉得SELECT放在前面才是最舒服的。问题是:为什么SELECT一定要放在前面?因为SQL放在前面吗?SELECT放在前面一定方便吗?让我们回忆一下写SQL语句时的尴尬,我想大多数人都是和小凡这样的。我们设想下面一种写SQL的情况,有5张表要做互相连接,并且5张表每个表中要取3个字段,那我们的FROM肯定是洋洋洒洒的:FROM TABLE_A 阅读全文

posted @ 2009-01-07 23:05 Van Pan 阅读(154) 评论(0) 推荐(0) 编辑

从C# 3.0说以人为本(一)—— 编译器的支持

摘要: “科技,以人为本”,这句话是不是NOKIA自创的小凡不得而知,不过,在这方面做的最好的微软实在是要在里面占上一个很有力的位置。且不说微软的操作系统进步有目共睹(当然也有如VISTA一般敢于吃螃蟹却因为华而不实遭到放弃的实例),事实上,在.NET项目中,对于C#语言和一些编程风格上的改进的确让小凡觉得处处都是为人着想。说到.NET 3.0,最大的变化当属LINQ和Lambda表达式,我们先从LINQ入手,看看为了实现LINQ的功能,分析微软做了多少工作。一,MSDN的示例classIntroToLINQ{staticvoidMain(){//TheThreePartsofaLINQQuery: 阅读全文

posted @ 2009-01-07 22:57 Van Pan 阅读(163) 评论(0) 推荐(0) 编辑