摘要: 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。将方法作为方法的参数我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问候的 阅读全文
posted @ 2012-03-01 18:00 scott.pei 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 这种情况是指在后台处理一个HTTP Post命令时将时序重新交给浏览器端,然后运行javascript,然后再回到服务器端,然后继续进行后边的操作。如果你会画时序图,就可以发现这种有着两个来回通讯的程序比大多数所知道的那种只有一个来回的通讯的程序要复杂(虽然代码并不多多少)。这里用到.NET的IPostBackEventHandler接口。给个列子如下(关键代码红色标明):protected void btnAddGift_Click(object sender, EventArgs e) { string inventoryIdStr = string.Empty; string inven 阅读全文
posted @ 2012-02-29 18:17 scott.pei 阅读(2292) 评论(0) 推荐(1) 编辑
摘要: .aspx、MasterPage、.ascx加载顺序 1. Master page中的用户控件的 page_init2. Aspx页面中的用户控件的 page_init3. Master page的page_init4. Aspx的 page_init5. Aspx的page_load6. Master page的page_load7. Master page中的用户控件的 page_load8. Aspx页面中的用户控件的 page_load.aspx、.master、ascx这三个页面中Page_Load的执行顺序是:.aspx中的pg-->.master中的 pg-->asc 阅读全文
posted @ 2012-02-27 11:17 scott.pei 阅读(211) 评论(0) 推荐(0) 编辑
摘要: <script type="text/javascript"> $(document).ready(function () { var myAccountTab = document.getElementById("menuUl"); var myAccountTabLi = myAccountTab.getElementsByTagName("li"); var modifyContentdiv = $("#subTabs>div"); for (i = 0; i < myAccountT 阅读全文
posted @ 2012-02-24 15:11 scott.pei 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 如果您使用Microsoft Internet Explorer浏览器第一步,点击菜单栏“工具”-->“Internet选项”。第二步,选择“安全”选项框,并点击“Internet”图标,然后点击“自定义级别”按钮。如下图所示。第三步,找到设置项“脚本”,将“Java小程序脚本”和“活动脚本”都设置为“启用”。如下图。第四步,点击“确定”按钮。以及第二步窗口的“确定”按钮。如果您使用Mozilla Firefox浏览器第一步,点击菜单栏“工具”-->“选项”。第二步,选择“内容”选项框,选中“启用Javascript”。然后点击“确定”按钮。如下图所示。NoScript插件如果您使 阅读全文
posted @ 2012-02-24 14:45 scott.pei 阅读(1054) 评论(0) 推荐(0) 编辑
摘要: public class StaticDictory { public static Dictionary<int, string> CataLog; public static Dictionary<int, string> RoleName; public int A; public StaticDictory() { this.A = 5; } public StaticDictory(int B) { this.A = B; } static StaticDictory() { CataLog = new Dictionary<int, string> 阅读全文
posted @ 2012-02-23 17:54 scott.pei 阅读(7989) 评论(2) 推荐(2) 编辑
摘要: 在Windows中每运行一个程序,系统资源就会减少。有的程序会消耗大量的系统资源,即使把程序关闭,在内存中还是有一些没用的DLL文件在运行,这样就使得系统的运行速度下降。不过我们可以通过修改注册表键值的方法,使关闭软件后自动清除内存中没用的DLL文件及时收回消耗的系统资源。 打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer”主键,在右边窗口单击右键,新建一个名为“AlwaysUnloadDll”的“字符串值”,然后将“AlwaysUnloadDll”的键值修改为“1”,退出注册.. 阅读全文
posted @ 2012-02-22 16:45 scott.pei 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 不少时候在页面中为了布局的需要,下拉列表<select>的宽度需要设成比较小的值,这时如果恰巧它包含的选择项<option>的内容比较长,那么超出select宽度的部分将会被截断,如果option显示的内容又比较重要,必须完整地展现出来,或者你是个完美主义者,那这就成了一个不大不小的问题了。在IE7+、Firefox中,由于支持了<option>的title属性,我们可以想办法给option标记设置title属性(内容可以与显示的值相同或者不同)。如果是已经做好的页面,不想再做太多改动,可以用下面的脚本,自动遍历页面上的所有<select>,给所 阅读全文
posted @ 2012-02-22 16:25 scott.pei 阅读(656) 评论(0) 推荐(0) 编辑
摘要: 把页面上的 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 去掉1.没删之前2.没删之前,吧手标往下移动3.删完后就正常 阅读全文
posted @ 2012-02-22 15:30 scott.pei 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 概括: 这里说的聚集索引是聚簇索引 聚簇索引即建立在聚簇上的索引,创建聚簇索引时,需要对已有表数据重新进行排序(若表中已有数据),即删除原始的表数据后再将排序结果按物理顺序插回,故聚簇索引建立完毕后,建立聚簇索引的列中的数据已经全部按序排列。 一个表中只能包含一个聚簇索引,但该索引可以包含多个列。 B-树索引中,聚簇索引的叶层就是数据页。 非聚簇索引类似书本索引,索引与数据存放在不同的物理区域,建立非聚簇索引时数据本身不进行排序。一个表中科含多个非聚簇索引。 B-树索引中,非聚簇索引的叶层仍是索引页,其以指针指向数据页实际存储位置。详解,列子:非聚集索引与聚集索引具有相同的 B 树结构,它们之 阅读全文
posted @ 2012-02-16 11:05 scott.pei 阅读(1661) 评论(0) 推荐(0) 编辑