2011年4月18日

ASP.NET自定义控件开发示例(二)

摘要: 接着上次的内容。接下来我们让它的时间能不停走动。新建一个类TipTime3,新建脚本文件TipTime3.js,将TipTime2代码都复制过来。 为了能将C#的DateTime对象转换为JS的Date,需要将该时间距离1970-1-1午夜的毫秒数传给JS。剩下的工作就是利用setInterval每隔1秒改变span标签的文本,略过。 下一步要实现利用AJAX获取服务端的时间。先要让控件实现ICallbackEventHandler接口。该接口包含2个方法。 RaiseCallbackEvent用于处理客户端传递过来的参数,这里不需要,所以空着。 GetCallbackResult用于处理返回 阅读全文

posted @ 2011-04-18 15:13 小小娟 阅读(4590) 评论(3) 推荐(3) 编辑

2011年4月15日

ASP.NET自定义控件开发示例(一)

摘要: 本文通过实现一个服务端控件来讲解一下控件开发,该控件的功能如下:1.显示服务端时间,并不停更新 2.通过手动点击刷新按钮以AJAX获取服务端最新时间 3.能拖动 4.能记住在页面上的位置,页面回传后位置不变 5.能配置一个定时时间,一到这个时间,自动回传触发用户自定义的事件首先新建一个类库项目HampWebControl,再新建一个类叫TipTime1,继承WebControl类。如果不是从已有控件中继承,一般就继承WebControl类,它是所有ASP.NET服务端控件的基类。我们编译这个项目,再新建一个网站项目,引用HampWebControl项目,新建页面,在工具箱中拖一个TipTime 阅读全文

posted @ 2011-04-15 17:31 小小娟 阅读(26366) 评论(14) 推荐(11) 编辑

2011年2月18日

Silverlight与Flash在FF中的一些注意点

摘要: 在HTML中,Silverlight、Flash以object标签的形式显示,如以下代码:View Code 但是必须同时指定该object元素的height、width的值,否则在FF下不能显示。同时如果height的值为百分比,则它的外围元素必须有高度,否则也不显示(width的值为百分比的情况也一样)如下代码在FF下不能显示:View Code 如下代码在FF下可以显示(因为div默认宽度就是整个屏幕的宽度):View Code 另一个注意点也是在FF下,当把object元素用style.display=”none”的形式隐藏掉,再用style.display=& 阅读全文

posted @ 2011-02-18 17:25 小小娟 阅读(1874) 评论(2) 推荐(2) 编辑

2011年2月16日

基于silverlight实现批量上传控件(一)

摘要: 这是最近做的一个基于silverlight的ASP.NET批量上传控件,目前在写开发文档,同步将文档内容发在博客里。开发目的HTML的file控件只能选择单个文件,不能批量选择,而且没有进度提示。原理用silverlight实现多选批量上传,利用与javascript的交互来控制显示,并将其封装成ASP.NET服务端控件。总体结构首先用户进入页面,执行批量上传控件的服务端代码,生成HTML代码(包括silverlight的html代码,这样就完成了对silverlight的初始化)。用户在silverlight上选择完文件,开始上传,这时用silverlight去访问当前页面,在地址上加上标示 阅读全文

posted @ 2011-02-16 18:17 小小娟 阅读(4097) 评论(10) 推荐(7) 编辑

Response.End导致“正在中止线程”异常的问题

摘要: 这是最近发现的一个问题,我用AJAX请求P页面,然后根据返回值来确定下一步的逻辑,结果发现Response.End语句居然引发了“正在中止线程”异常,导致影响了判断返回结果的逻辑。P页面代码类似如下结构:[代码]根据一些业务逻辑返回相应的状态字符串,如果出现异常做返回“error”,我预期它返回“状态1”,结果测试时发现AJAX回调的结果是“状态1error”,它居然抛出异常了!google后得知:Response.End 方法终止页的执行,并将此执行切换到应用程序的事件管线中的 Applicati 阅读全文

posted @ 2011-02-16 15:50 小小娟 阅读(23878) 评论(16) 推荐(12) 编辑

2011年2月12日

URL地址中的#符号

摘要: 一般我们想让一个a标签点击后执行javascript代码,有以下几种写法:方式一:<a href="#" onclick="alert(1);">点击一</a>这种方式的缺点就是点击后会在地址栏的URL后面加#号,同时把页面移动到顶部,如下图所示:方式二:<a href="javascript:void(0);" onclick="alert(1);">点击一</a>这种方式避免了方式一的缺点,点击后对页面没有任何影响。但是有一个致命的缺点,就是在IE6下不能执行form对象的submit()方法,也不能执行跳转语句,比如<a href=" 阅读全文

posted @ 2011-02-12 16:08 小小娟 阅读(8893) 评论(17) 推荐(7) 编辑

2011年1月20日

批量上传控件的界面设计问题

摘要: 最近要做个ASP.NET的批量上传控件,用silverlight实现,再封装成ASP.NET的自定义控件,但是遇到一个页面设计问题。我的想法是页面上一开始只会显示一个“上传”按钮,点击后弹出一个浮动层,在这个浮动层里用silverlight实现上传功能,会显示文件列表、上传进度条等信息。这样设计是为了怕文件列表会破坏布局(因为可能有很多文件),所以考虑了用浮动层。但是同事认为用户选完文件上传以后,把弹出层关了,页面上要显示文件列表,方便用户直接查看;我却认为用户要看他自己上传了哪些文件,就点击“上传”按钮,从弹出的浮动层中看,因为直接在页面上显示文件列表很容易影响周围布局,而且样式也不好弄,可 阅读全文

posted @ 2011-01-20 21:28 小小娟 阅读(1628) 评论(0) 推荐(1) 编辑

2011年1月15日

ProjectEuler做题笔记(第1,2题)

摘要: 第一题:找出1000内能被3或5整除的所有数的总和。第一反应是,循环,判断是否能被3或5整除,能的话就加到一个变量中,代码如下:接着考虑到%取模运算比较消耗性能,便另想办法。其实就是把3的倍数都加起来,把5的倍数也都加起来,两者相加再减去15的倍数之和,代码如下:经测试,当计算1000000内的结果时,方法二比方法一要快将近10倍,数据量越大差距越明显。当然最逆天的算法是用等差数列求和,3+6+9+。。。。+999+5+10+15+。。。。+995-15-30-....-990大致浏览了下官方答案和老外的留言,没有特别的解法。最后答案是233168第二题:计算斐波那契数列不超过400万的数中, 阅读全文

posted @ 2011-01-15 22:26 小小娟 阅读(1121) 评论(0) 推荐(0) 编辑

2011年1月3日

从团购网的漏洞看网站安全性问题

摘要: 自从9月份在同事推荐下在某团购网买了一份火锅的套餐后,就迷上了,几乎每天必去浏览一遍,看看有什么又便宜又好吃的。元旦期间当然也不例外,1号那天上午,看到了XXX团购网的“VIP会员0元领红包”活动,0元?我最喜欢了,虽然参与过很多次0元抽奖的活动,一次也没中,但是人总是有一种信念相信自己的运气的。于是果断进去注册,点击购买,进入了购物车再点击确认订单,恩?怎么alert这么一句“本活动只限VIP会... 阅读全文

posted @ 2011-01-03 22:22 小小娟 阅读(42532) 评论(133) 推荐(74) 编辑

2010年12月24日

.NET异步发邮件的一个BUG

摘要: 我们先来看同步发送邮件的代码代码一共三个邮件接收人,第三个是无效的邮件地址。执行后,会抛出一个异常:不允许使用邮箱名称。 服务器响应为: RP:RDN http://www.ipmotor.com/smtp_err.htm但是其它两个邮件接收人依然会收到该封邮件,如下图:接下来我们来看异步发送,代码如下:代码也是一共三个邮件接收人,第三个是无效的邮件地址。执行后,在回调函数中可以捕获到“未将对象应用设置到对象实例”的异常信息,但是其它两个邮件接收人就收不到邮件了。照我个人的理解,同步、异步操作只是执行的方式不同,执行结果总得一样吧?但是发送邮件这里明显结果都不一样了,应该是属于一个BUG吧?P 阅读全文

posted @ 2010-12-24 11:59 小小娟 阅读(2212) 评论(1) 推荐(1) 编辑

导航