随笔分类 -  ASP.NET

摘要:JQuery下的UI控件似乎是有问题的,某天我从凌晨两点调试一个JQuery Dialog,一直到早上8:00都没有调试出来。当时我在Dialog里面放置了一个服务器按钮,并让按钮和CodeBehind里的一个事件处理函数绑定,但是奇怪的是怎么点击按钮,都不响应后面的事件函数,整得我直抓狂。天亮后,Google了一下,终于找到原因:JQuery会把Dialog的元素append到Body里面,而不... 阅读全文
posted @ 2010-08-18 11:48 貔貅 阅读(718) 评论(0) 推荐(0)
摘要:ASP.Net 自带的缓存机制对于提高页面性能有至关重要的作用,另一方面,缓存的使用也会造成信息更新的延迟。如何快速更新缓存数据,有时成了困扰程序员的难题。根据我的使用经验,总结了下面几种方法,概括了常见的几种情况,如有更好的方法欢迎补充。(1)Cache 对象缓存Cache 对象提供代码级的缓存,功能强大,可操作性强。更新这种缓存的方法很简单,只要调用 Cache.Remove(key) 方法就... 阅读全文
posted @ 2010-08-16 23:45 貔貅 阅读(860) 评论(0) 推荐(0)
摘要:静态方法如果没有使用静态变量,则没有线程安全问题。   为什么呢?因为静态方法内声明的变量,每个线程调用时,都会新创建一份,而不会共用一个存储单元。每个线程都会创建自己的一份,因此不会有线程安全问题  注意,静态变量,由于是在类加载时占用一个存储区,每个线程都是共用这个存储区的,所以如果在静态方法里使用了静态变量,这就会有线程安全问题!  目前流行的进程线程同步互斥的控制机制,其实是由最原始最基本... 阅读全文
posted @ 2010-08-12 13:42 貔貅 阅读(717) 评论(0) 推荐(0)
摘要:关于获取各种浏览器可见窗口大小的一点点研究。在我本地测试当中:在IE、FireFox、Opera下都可以使用document.body.clientWidthdocument.body.clientHeight即可获得,很简单,很方便。而在公司项目当中:Opera仍然使用document.body.clientWidthdocument.body.clientHeight可是IE和FireFox则... 阅读全文
posted @ 2010-08-05 14:38 貔貅 阅读(428) 评论(0) 推荐(0)
摘要:使用 Application.StartupPath 至于 System.IO.Directory.GetCurrentDirectory不行,因为应用程序有个当前工作目录,这个工作目录是会变的,不总是程序的启动目录(当然默认启动是应用程序目录)。 比如说,你打开命令行(cmd),它就会显示一个路径,你会发现这个路径(通常是 C:\Documents and settings\用户名,在XP下)不... 阅读全文
posted @ 2010-08-02 23:26 貔貅 阅读(1111) 评论(0) 推荐(0)
摘要:下面是我实现的一个数据文件随机读取类,可以随机读取大型文本文件的某一行。在我机器上对一个130MB的文本文件,读取第200000的速度从传统做法的400ms提高到了3ms。一般对文本文件进行读取时,一般采用ReadLine()进行逐行读取。在这种情况下,C#内的FileStream和BufferedStream类处理绰绰有余了。它不会将整个文件全部读入,而是有缓冲的读。但是,要想随机读取某一行,在... 阅读全文
posted @ 2010-06-11 09:14 貔貅 阅读(1606) 评论(1) 推荐(1)
摘要:很多人都有过使用网络蚂蚁或网络快车软件下载互联网文件的经历,这些软件的使用可以大大加速互联网上文件的传输速度,减少文件传输的时间。这些软件为什么有如此大的魔力呢?其主要原因是这些软件都采用了多线程下载和断点续传技术。如果我们自己来编写一个类似这样的程序,也能够快速的在互联网上下载文件,那一定是非常愉快的事情。下面我就讲一讲如何利用C#语言编写一个支持多线程下载文件的程序,你会看到利用C#语言编写网... 阅读全文
posted @ 2010-06-10 12:01 貔貅 阅读(546) 评论(1) 推荐(1)
摘要:HTTP头信息头信息由“键:值”组成。它们描述客户端或者服务器的属性、被传输的资源以及应该实现连接。四种不同类型的头标通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。请求头标:允许客户端传递关于自身的信息和希望的响应形式。响应头标:服务器和于传递自身信息的响应。实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。头标格式:<na... 阅读全文
posted @ 2010-06-10 11:34 貔貅 阅读(450) 评论(0) 推荐(1)
摘要:1.数据库访问性能优化  数据库的连接和关闭  访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求。  连接池的大小是有限的,如果在连接池达到最大... 阅读全文
posted @ 2010-06-08 23:35 貔貅 阅读(349) 评论(0) 推荐(0)
摘要:1、提交后 禁用提交按钮(像CSDN这样)2、数据处理成功马上跳转到另外一个页面操作后刷新的确是个问题,你可以使用跳转页面、关闭本页面,如果是有参数据条件来控制的,那就应该好做了,可以直接修改window.location的值,把值的参数全部改掉,这样就可以了。我用的方法就是以上的。document.all("save_"+idx).disabled=true;刚才有位兄弟也这么问其实很简单在提交... 阅读全文
posted @ 2010-06-08 23:32 貔貅 阅读(307) 评论(0) 推荐(0)
摘要:如题所述,巧妙使用扩展方法的优先级,美化你网站(ASP.NET MVC)页面的 TextBoxFor 文本框;配合 js 脚本,还能限制用户录入。而且你甚至不需要修改任何一个前台页面...先看个使用前后的对比图:是不是右侧的更漂亮些?使用几个简单的扩展方法就可以让你的整个 ASP.NET MVC 网站的页面变成右面的效果。TextBoxFor 扩展方法是ASP.NET MVC 2中 强类型 Htm... 阅读全文
posted @ 2010-05-12 11:16 貔貅 阅读(907) 评论(1) 推荐(0)
摘要:string是各种编程语言中最基础的数据类型,长期以来受尽其它类的压迫,经常被肢解(Substring、Split)、蹂躏(Join)... 而现在string要“翻身闹革命”了,它几乎无所不能,可以为所欲为,令其它类心惊胆颤...让我们来看一下革命后的string做了些什么?1. 打开文件或网址[代码]怎么做到的呢?看扩展,很简单,直接调用调用了Process.Start... 阅读全文
posted @ 2010-05-12 11:15 貔貅 阅读(238) 评论(0) 推荐(0)
摘要:最近写了几篇《c#扩展方法奇思妙用》的文章,一直只是讨论如何扩展、如何使用的问题,几乎没有涉及效率方面。而大家的回复好多都在问效率如何、性能怎样,也引起了我对效率的关注,今天将初步测试的结果发出来,大家一起探讨一下。以前没太写过性能测试的代码,上网找了一下,说可以用Stopwatch进行计时,比较准确。Stopwatch使用比较简单,几个方法从名字上就知道用用途:Reset(计时清零)、Start... 阅读全文
posted @ 2010-05-12 11:15 貔貅 阅读(272) 评论(0) 推荐(0)
摘要:变态篇二中给出了对if/else、swith/case及while 的扩展,大家评价各不相同,其实本人也感觉有点牵强。其中举了一个Swith扩展的应用,今天突然有了新想法,对它改进了一些。所谓“语不惊人死不休”,且看这次的改进如何。我先把扩展的源代码贴出来,折叠一下,等看完后面的例子和讲解再回来看。(和前面一样,本文侧重想法,代码演示用,如需使用,请自行完善)[代码]这段代... 阅读全文
posted @ 2010-05-12 11:14 貔貅 阅读(558) 评论(1) 推荐(0)
摘要:本文探讨如何使用扩展方法封装 if/else、swith/case及while,通过使用这些扩展,写出的代码将使用很少的大括号{ }。扩展的效果如何,还请大家来评判!声明:本文属于(改)变(形)态篇,只是提出一种想法,所提供的代码也只是示例,可以测试通过,但不完善。首先我们来对看if/else和swith/case,两者在代码中都用来表达分支结构。这里我们统一封装成一个If扩展:[代码]看下面的调... 阅读全文
posted @ 2010-05-12 11:13 貔貅 阅读(358) 评论(0) 推荐(0)
摘要:Type 类提供了大量的属性和方法,但在一些基础性开发工作中,Type类功能还有些欠缺,尤其上在处理泛型类型时,如可空类型和泛型集合类型。下面的类就针对这些地方进行扩展。[代码]从名字上就以大体知道方法的功能,下面是部分测试代码,帮助大家理解:[代码]代码就是最好的文档,想必大家已经都看明白了。 TypeHelper 是我从一个类库中提取的,它原本是一个 internal static class... 阅读全文
posted @ 2010-05-12 11:12 貔貅 阅读(369) 评论(0) 推荐(0)
摘要:先回顾一个数列的概念:按一定次序排列的一列 数 称为数列...(请参见百度百科:数列)几个简单的数列:1, 1, 1, 1, 1, 1, 1... //数列10, 1, 2, 3, 4, 5, 6, 7... //数列20, 1, 4, 9, 16, 25, 36, 49... //数列3通项公式的定义:数列的第n项与项的序数这间的关系,也就是数列生成算法上面几个数列可表示为An = F(n) =... 阅读全文
posted @ 2010-05-12 11:12 貔貅 阅读(368) 评论(0) 推荐(0)
摘要:我的上一篇随笔《c#扩展方法奇思妙用高级篇六:WinForm 控件选择器》中给出了一个WinForm的选择器,其实质就是一个“树”的遍历器,但这个遍历局限于WinForm的Control类。在数据结构中,“树”的遍历是一个通用算法,那我们为什么不做一个通用的“树”遍历扩展呢? 先看一个简单的类People(将作为测试用的例子)... 阅读全文
posted @ 2010-05-12 11:11 貔貅 阅读(263) 评论(0) 推荐(0)
摘要:在Web开发中,jQuery提供了功能异常强大的$选择器来帮助我们获取页面上的对象。但在WinForm中,.Net似乎没有这样一个使用起来比较方便的选择器。好在我们有扩展方法,可以很方便的打造一个。 我们先看几个类图,深入认识一下我们常用的WinForm控件:图1 ScrollableControl类图图2 ButtonBase类图 图3 TextBoxBase类图 图4 ListControl类... 阅读全文
posted @ 2010-05-12 11:10 貔貅 阅读(331) 评论(0) 推荐(0)
摘要:从系列文章开篇到现在,已经实现的很多扩展了,但过多的扩展会给我们带来很多麻烦,试看下图: 面对这么多“泛滥”的扩展,很多人都会感到很别扭,的确有种“喧宾夺主”的感觉,想从中找出真正想用的方法来太难了!尽管经过扩展后的string类很“强大”,但易用性确很差。很多人因此感觉扩展应适可而止,不该再继续下去...其实这是一种逃避问题... 阅读全文
posted @ 2010-05-12 11:09 貔貅 阅读(234) 评论(0) 推荐(0)