摘要: 1.分页查询条件var query={keywords:'your keywords',id:'your id'}; //把查询条件拼接成JSON$("#test").datagrid('options').queryParams=query; //把查询条件赋值给datagrid内部变量$("#test").datagrid('reload'); //重新加载2.阅读全文
posted @ 2012-01-31 16:38 awp110 阅读(9) 评论(0) 编辑
摘要: List<t_ExpoEntity> t_ExpoEntityList = new List<t_ExpoEntity>(); dd.Author = "11"; t_ExpoEntityList.Add(dd); dd = new t_ExpoEntity(); dd.Author = "22"; t_ExpoEntityList.Add(dd); List<t_ExpoEntity> t_ExpoEntityList2 = t_ExpoEntityList.FindAll( delegate(t_ExpoEntit阅读全文
posted @ 2011-10-17 14:17 awp110 阅读(7) 评论(1) 编辑
摘要: Jquery Upload and Crop Image这是一款图片上传和裁剪插件。演示 | 下载阅读全文
posted @ 2011-08-19 14:58 awp110 阅读(22) 评论(0) 编辑
摘要: 2011/11 -2012/3 学习计划及内容【=》》》》》淘宝】1)WCF学习资料 http://www.cnblogs.com/jillzhang/category/121346.html2)MVC3)Nhibernate4)IOC概念5)k2 blackpearl工作流http://www.cnblogs.com/xuanfeng/这个人的网站还不错实际安排1-5: 7-9点 娱乐 9-11看书 睡觉6-7:8-11 看书 1-11 娱乐 6.7计划完成: 修正代码 看需求及资料 看完资料修改调价页面实际完成:6.11 看重构cmmi阅读全文
posted @ 2011-06-07 08:31 awp110 阅读(25) 评论(0) 编辑
摘要: 电子商务阅读全文
posted @ 2011-05-30 08:39 awp110 阅读(21) 评论(0) 编辑
摘要: 《asp.net知识总结》开发语言c#目录第一章 .NET的原理第二章 .NET常用特性第三章 ASP.NET原理第四章 SQLSERVER第五章 XML第六章 WebService第七章 Jquery第八章 设计模式第九章 性能提升第十章 实践应用技巧第十一章 实践开发案例第十二章 开发必备工具使用技巧第十三章 开源项目阅读全文
posted @ 2011-04-21 09:55 awp110 阅读(28) 评论(0) 编辑
摘要: ibatiswcfmvcnhibernate完善模版权限管理google地图应用extjquery阅读全文
posted @ 2010-01-12 09:41 awp110 阅读(95) 评论(0) 编辑
摘要: http://hi.baidu.com/mobaihuo/blog/item/0a18a5193d302dbe4aedbc3c.htmlIE6 bug到底令我们前端开发头痛我就不多说了说实话,很多东西我一直在回避IE6的BUG,比如不用半透明的PNG。。。但是毕竟IE6还将长期存在,而且IE6在中国比例目前还绝对多数,所以我们无法回避。逃无可逃,退无可退!现整理收集《【IE6的疯狂系列】IE6 b...阅读全文
posted @ 2009-12-29 21:35 awp110 阅读(56) 评论(1) 编辑
摘要: 匿名函数(fuction(){})();包含fuction(){ }的第一个括号向脚本返回未命名的函数。随后的一对括号立即执行返回的未命名函数。1.作用域解析和闭包的概念function initanchors(W3CEvent) {for (var i=1 ; i<=3 ; i++ ) {var anchor = document.getElementById('anchor' + i);...阅读全文
posted @ 2009-12-12 10:00 awp110 阅读(38) 评论(0) 编辑
摘要: 一、AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架。Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(aspects)的方法帮助缺少经验的开发人员提高开发效率。 NKalore是一款编程语言,它扩展了C#允许在.net平台使用AOP。NKalore的语法简单、直观,它的编译器是基于Mono C#编译器(MCS)。NKalore目前只能在命令行或#Develop内部使用。NKalore兼容公共语言规范CLS(Common Language Specification),它可以在任何.NET开发环境中使用阅读全文
posted @ 2009-12-10 09:03 awp110 阅读(80) 评论(0) 编辑
摘要: 复习及文章总结一 ASP.NET原理 1.ASP.NET 2.0运行时简要分析 2.asp.net原理(总结整理1) 3.asp.net原理(总结整理 2) 4.ASP.NET运行原理 (学习总结) 5.Asp.Net 构架(Http Handler 介绍) - Part.2 6.Asp.Net 构架(HttpModule 介绍) - Part.3 7.ASP.NET底层架构 22 ...阅读全文
posted @ 2009-11-13 22:46 awp110 阅读(92) 评论(0) 编辑
摘要: 设置input的text不可修改<input type="text" name="haha1" readonly><br><input type="text" name="haha3" disabled><input type="text" name="haha2" onfocus="this.blur()"><br> function btnDisabled() { $("#table阅读全文
posted @ 2009-10-15 15:16 awp110 阅读(204) 评论(0) 编辑
摘要: 1.OBJECT作参数时是传址的(就是你说的传引用)String虽然是引用类型,但是当参数使用时你要当作是传值,不是传址,就对了。其它基本类型都是传值的 strings2=newStringBuilder().Append("My").Append("Test").ToString();strings3=newStringBuilder().Append("My").Append("Test")...阅读全文
posted @ 2009-08-06 14:59 awp110 阅读(15) 评论(0) 编辑
摘要: 一.Javascript代码执行效率1. DOM1.1 使用 DocumentFragment 优化多次 append说明:添加多个 dom 元素时,先将元素 append 到 DocumentFragment 中,最后统一将 DocumentFragment 添加到页面。该做法可以减少页面渲染 dom 元素的次数。经 IE 和 Fx 下测试,在 append1000 个元素时,效率能提高 10%...阅读全文
posted @ 2009-07-27 15:01 awp110 阅读(43) 评论(0) 编辑
摘要: 1<noscript></noscript> 当用户浏览器禁用或不支持javascript时 还想在页面显示一些内容可以使用<noscript></noscript>标签对。2http mailto javascript<a href="javascript:alert(new Date())">javascript</a>3javascript区分大小写 html不区分4转义字符 \b退格\t跳格\n回车换行\r换行\""双引号\'单引号\\ \5特殊数据类型undefin阅读全文
posted @ 2009-07-18 10:01 awp110 阅读(39) 评论(0) 编辑
摘要: 是否总是觉得工作特别的枯燥、乏味、无聊,面对成堆的代码后头脑开发犯困,表情开始僵硬,这对你来说简直就是一种折磨,它甚至和你原先所想象的不一样,程序员本来应该是精力充沛,激情四溢的,幻想着能够去创造去驾驭所有的东西。归根结底是因为我们对工作失去了兴趣,因为我们越来越发现,情况已经超出我们的控制范围了。我们不知道为什么程序昨天还运行得好好的,一觉醒来后就不能正常工作了,我们不知道为什么项目到了后期总是...阅读全文
posted @ 2009-06-19 09:16 awp110 阅读(36) 评论(0) 编辑
摘要: http://msdn.microsoft.com/zh-cn/library/ms178473(VS.80).aspx本主题概述应用程序生命周期,列出重要的生命周期事件,并描述如何编写适合应用程序生命周期的代码。在 ASP.NET 中,若要对 ASP.NET 应用程序进行初始化并使它处理请求,必须执行一些处理步骤。此外,ASP.NET 只是对浏览器发出的请求进行处理的 Web 服务器结构的一部分...阅读全文
posted @ 2009-01-09 12:26 awp110 阅读(45) 评论(0) 编辑
C:\oracle\product\10.2.0\client_1\network\ADMIN   TNSNAMES.ORA
posted @ 2012-02-09 08:37 awp110 阅读(4) 评论(0) 编辑

前言

  上一篇文章(详解强大的jQuery选择器之基本选择器、层次选择器)介绍了jQuery四类选择器中的基本选择器、层次选择器,本文将介绍剩下的两种选择器:过滤选择器、表单选择器。

  本文仍使用上一篇文章中的示例页面。

一、过滤选择器

  过滤选择器主要是通过特定的过滤规则来筛选出所需要的DOM元素,过滤规则与CSS中的伪类选择器语法相同。

  按照不同的过滤规则,过滤选择器可以分为以下几种:

  1、基本过滤选择器

  2、内容过滤选择器

  3、可见性过滤选择器

  4、属性过滤选择器

  5、子元素过滤选择器

  6、表单对象属性过滤选择器

  下面就对这几种过滤选择器分别加以介绍。

1.1基本过滤选择器

  基本过滤选择器是过滤选择器中用的最多的一种,它的过滤规则主要体现在元素的位置(索引)上及一些特定的元素。

  基本过滤选择器规则:

基本过滤选择器
选 择 器 描 述 返 回 示 例
:first 选取第1个元素 单个元素 $("div:first")选取所有 <div>元素
中第一个<div>元素
:last 选取最后1个元素 单个元素 $("div:last")选取所有 <div>元素
中最后一个<div>元素
:not(selector) 去除所有与给定选择器
匹配的元素
集合元素 $("input:not(.myClass)")选取class不是
myClass的<input>元素
:even 选取索引(从0开始)是偶数
的所有元素
集合元素 $("input:even")选取索引是偶数的
<input>元素
:odd 选取索引(从0开始)是奇数
的所有元素
集合元素 $("input:odd")选取索引是奇数的
<input>元素
:eq(index) 选取索引(从0开始)等于
index的元素
单个元素 $("input:eq(1)")选取索引等于1的
<input>元素
:gt(index) 选取索引(从0开始)大于
index的元素
集合元素 $("input:gt(1)")选取索引大于1的
<input>元素
:lt(index) 选取索引(从0开始)小于
index的元素
集合元素 $("input:lt(1)")选取索引小于1的
<input>元素
:header 选取所有的标题元素,即
<h1>到<h6>
集合元素 $(":header")选取页面中所有的标题元素
:animated 选取当前正在执行动画的
所有元素
集合元素 $("div:animated")选取当前正在执行动画
的<div>元素

  示例:

1.2内容过滤选择器

  内容过滤选择器的过滤规则主要体现在它所含的子元素或文本内容上。

  内容过滤选择器规则:

内容过滤选择器
选 择 器 描 述 返 回 示 例
:contains(text) 选取含有文本内容为 text 的元素 集合元素 $("div:contains('test')")选取含有文本内容
为 test 的<div>元素
:empty 选取不包含子元素或文本的空元素 集合元素 $("div:empty")选取不包含子元素或文本
的空<div>元素
:has(selector) 选取含有给定选择器
匹配的元素的元素
集合元素 $("div:has(.myClass)")选取含有class为
myClass的元素的<div>元素
:parent 选取含有子元素或文本的元素 集合元素 $("div:parent")选取含有子元素或文本的
<div>元素

  示例:

1.3可见性过滤选择器

  可见性过滤选择器是根据元素的可见和不可见状态来选择相应的元素。

  可见性过滤选择器规则:

可见性过滤选择器
选 择 器 描 述 返 回 示 例
:hidden 选取所有不可见的元素 集合元素 $("div:hidden")选取所有不可见的<div>元素
:visible 选取所有不可见的元素 集合元素 $("div:visible")选取所有可见的<div>元素

  示例:

1.4属性过滤选择器

  属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素。

  属性过滤选择器规则:

属性过滤选择器
选 择 器 描 述 返 回 示 例
[attribute] 选取拥有此属性的元素 集合元素 $("div[id]")选取拥有属性id的元素
[attribute=value] 选取属性的值为value的元素 集合元素 $("div[title=test]")选取属性 title 为
test 的<div>元素
[attribute!=value] 选取属性的值不等于value的元素 集合元素 $("div[title!=test]")选取属性 title 不
等于 test 的<div>元素
[attribute^=value] 选取属性的值以value开始的元素 集合元素 $("div[title^=test]")选取属性 title 以
test 开始的<div>元素
[attribute$=value] 选取属性的值以value结束的元素 集合元素 $("div[title$=test]")选取属性 title 以
test 结束的<div>元素
[attribute*=value] 选取属性的值含有value的元素 集合元素 $("div[title*=test]")选取属性 title 含
有 test 的<div>元素
[selector1][selector2]
...[selectorN]
选取匹配以上所有属性
选择器的元素
集合元素 $("div[id][title*=test]")选取拥有属性id,
且属性 title 含有 test 的<div>元素

  示例:

1.5子元素过滤选择器

  子元素过滤选择器的过滤规则是通过元素的父子关系来获取相应的元素。

  子元素过滤选择器规则:

子元素过滤选择器
选 择 器 描 述 返 回 示 例

:nth-child(index/

even/odd/equation)

选取每个父元素下的第index(索引值为奇数/

索引值为偶数/索引值等于某个表达式)个子元

素,index从1开始

集合元素 $("div:nth-child(1)")选取每个<div>中第一个子元素
:first-child 选取每个父元素下的第1个子元素 集合元素 $("div :first-child")选取每个<div>下第一个子元素
:last-child 选取每个父元素下的最后1个子元素 集合元素 $("div :last-child")选取每个<div>下最后一个子元素
:only-child 选取只有唯一子元素的元素的子元素 集合元素 $("div :only-child")选择只有一个子元素的<div>元素

  这里值得一提的是:nth-child(),这个选择器的详细功能如下:

  1、nth-child(even) 能选取每个父元素下的索引值是偶数的元素

  2、nth-child(odd) 能选取每个父元素下的索引值是奇数的元素

  3、nth-child(2) 能选取每个父元素下的索引值等于2的元素

  4、nth-child(3n) 能选取每个父元素下的索引值等于3的倍数的元素,n从0开始

  5、nth-child(3n+1) 能选取每个父元素下的索引值等于 (3n+1) 的的元素,n从0开始

  示例:

1.6表单对象属性过滤选择器

  此选择器主要是对所选择的表单元素进行过滤。

  表单对象属性过滤选择器规则:

表单对象属性过滤选择器
选 择 器 描 述 返 回 示 例
:enabled 选取所有可用元素 集合元素 $("body:enabled")选取页面内所有可用元素
:disabled 选取所有不可用元素 集合元素 $("body:disabled")选取页面内所有不可用元素
:checked 选取所有被选中的元素(单选框、复选框) 集合元素 $("input:checked")选取所有被选中的<input>元素
:selected 选取所有被选中的选项元素(下拉列表) 集合元素 $("select:selected")选取所有被选中的选项元素

  示例:

二、表单选择器

  顾名思义,表单选择器是为了能更加容易地操作表单,表单选择器是根据元素类型来定义的。

  表单选择器规则:

表单选择器
选 择 器 描 述 返 回 示 例
:input 选取所有的<input>、<textarea>、
<select>和<button>元素
集合元素 $(":input")选取所有的<input>、<textarea>、
<select>和<button>元素
:text 选取所有的单行文本框 集合元素 $(":text")选取所有的单行文本框
:password 选取所有的密码框 集合元素 $(":password")选取所有的密码框
:radio 选取所有的单选框 集合元素 $(":radio")选取所有的单选框
:checkbox 选取所有的多选框 集合元素 $(":checkbox")选取所有的多选框
:submit 选取所有的提交按钮 集合元素 $(":submit")选取所有的提交按钮
:image 选取所有的图像按钮 集合元素 $(":image")选取所有的图像按钮
:reset 选取所有的重置按钮 集合元素 $(":reset")选取所有的重置按钮
:button 选取所有的按钮 集合元素 $(":button")选取所有的按钮
:file 选取所有的上传按钮 集合元素 $(":file")选取所有的上传按钮
:hidden 选取所有的不可见元素 集合元素 $(":hidden")选取所有的不可见元素

  示例:

小结

  本文主要介绍了jQuery选择器中的过滤选择器和表单选择器,并对每种类型的选择器给出了示例代码,希望能对大家有所帮助。本人也是jQuery的初学者,欢迎大家拍砖。

  参考书籍:《锋利的jQuery》(人民邮电出版社)

版权
作者:天行健,自强不息

出处:http://artwl.cnblogs.com

本文首发博客园,版权归作者跟博客园共有。

转载必须保留本段声明,并在页面显著位置给出本文链接,否则保留追究法律责任的权利。

posted @ 2012-02-08 08:34 awp110 阅读(8) 评论(0) 编辑

jQuery插件的种类

1、封装对象方法

  这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进行操作,是最常见的一种插件。此类插件可以发挥出jQuery选择器的强大优势,有相当一部分的jQuery的方法,都是在jQuery脚本库内部通过这种形式“插”在内核上的,例如parent()方法,appendTo()方法等。

2、封装全局函数

  可以将独立的函数加到jQuery命名空间下。如常用的jQuery.ajax()方法、去首尾空格的jQuery.trim()方法,都是jQuery内部作为全局函数的插件附加到内核上去的。

3、选择器插件

  虽然jQuery的选择器十分强大,但在少数情况下,还是会需要用到选择器插件来扩充一些自己喜欢的选择器。

jQuery插件的机制

  jQuery插件的机制很简单,就是利用jQuery提供的jQuery.fn.extend()和jQuery.extend()方法,扩展jQuery的功能。

  jQuery.fn.extend()多用于扩展上面提到的3种类型中的第一种,jQuery.extend()用于扩展后两种插件。这两个方法都接受一个参数,类型为Object。Object对象的“名/值对”分别代表“函数或方法名/函数主体”。

编写jQuery插件的一些Tips

  1、jQuery插件的文件名推荐命名为jquery.[插件名].js,以免和其他JS库插件混淆。

  2、所有的对象方法都应当附加到jQuery.fn对象上,而所有的全局函数都应当附加到jQuery对象本身。

  3、在插件头部加上一个分号,以免他人的不规范代码给插件带来影响。

  4、所有的方法或函数插件,都应当以分号结尾,以免压缩时出现问题

  5、除非插件需要返回的是一些需要获取的变量,插件应该返回一个jQuery对象,以保证插件的可链式操作。

  6、利于jQuery.extend()方法设置插件方法的默认参数,增加插件的可用性。

jQuery插件结构

  jQuery插件结构如下:

;(function($){
/*这里放插件代码,可以将$作为jQuery的别名*/
})(jQuery);

封装jQuery对象方法插件实战

  功能:设置选择的元素的颜色,获取选择的首个元素的颜色

  命名:jquery.color.js

  结构:

;(function($){
$.fn.extend({
//这里写插件代码
});
})(jQuery);

  思路:设置一个参数value,如果调用时传递了value这个参数,就是设置颜色,否则为获取颜色。获取和设置颜色可以用jQuery提供的css方法即可

  完整代码:

;(function($){
$.fn.extend({
"color":function(value){
if(value==undefined){
return this.css("color");
}
else{
return this.css("color",value);
}
}
});
})(jQuery);

  由于css()方法在获取颜色时已有取第一个元素的判断,所以这里直接用this.css("color")即可。

  如果是一组插件,可以用如下写法:

;(function($){
$.fn.extend({
"color":function(value){
//插件代码
},
"border":function(value){
//插件代码
},
"background":function(value){
//插件代码
}
});
})(jQuery);

  插件测试:

封装全局函数插件实战

  功能:单独去除左侧或单独去除右侧的空格

  命名:jquery.lrtrim.js

  结构:

;(function($){
$.extend({
ltrim:function(text){
//插件代码
},
rtrim:function(text){
//插件代码
}
});
})(jQuery);

  思路:这类插件是在jQuery命名空间内部添加一个函数,直接用正则表达式即可。

  完整代码:

;(function($){
$.extend({
ltrim:function(text){
return (text||"").replace(/^\s+/g,"");
},
rtrim:function(text){
return (text||"").replace(/\s+$/g,"");
}
});
})(jQuery);

  插件测试:

自定义选择器插件实战

  jQuery以其强大的选择器著称,那么jQuery的选择器的工作原理是什么呢?

  jQuery的选择解析器首先会使用一组正则表达式来解析选择器,然后针对解析出的每一个选择符执行一个函数,称为选择函数。最后根据这个选择函数的返回值为true还是false来决定是否保留这个元素,这样就可以找到匹配的元素节点。

  如$("div:gl(1)"),该选择器首先会获取所有的<div>元素,然后隐式地遍历这些<div>元素,并逐个将这些<div>元素作为参数,连同括号里的“1”等一些参数一起传递给gt对应的选择器函数进行判断。如果返回true则保留,否则不保留,这样得到的结果就是一个符合要求的<div>元素的集合。

  选择器的函数一共接受3个参数,形式如下:

function (a,i,m){
//...
}

  第一个参数为a,指的是当前遍历到的DOM元素。

  第二个参数为i,指的是当前遍历到的DOM元素的索引值,从0开始。

  第三个参数是m,它是由jQuery正则解析引擎进一步解析后的产物,是一个数组:其中最重要的一个是m[3],在$("div:gl(1)")中即为括号里的数字“1”。

  在jQuery中已经有lt,gt和eq选择器,因此这里写一个介于两者之间(between)的选择器。

  功能:选择索引值为a到b之间(a<b,a、b为正整数)的元素

  命名:jquery.between.js

  结构:

;(function($){
$.extend($.expr[":"],{
between:function(a,i,m){
//插件代码
}
});
})(jQuery);

  思路:在上面的三个参数中,m[3]为"a,b"的形式,因此把m[3]用","分隔,然后跟索引值i进行对比,如果i在m[3]表示的范围之间就返回true,否则为false

  完整代码:

;(function($){
$.extend($.expr[":"],{
between:function(a,i,m){
var temp=m[3].split(",");
return +temp[0]<i&&i<+temp[1];
}
});
})(jQuery);

  注:这里用+temp[0]、+temp[1]把字符串形式的数字转换成了数字

  插件测试:

小结

  本文主要介绍了jQuery插件的种类,机制,并针对每种类型进行了实战,希望能对大家有所帮助。本人也是jQuery的初学者,欢迎大家拍砖。

  参考书籍:《锋利的jQuery》(人民邮电出版社)

posted @ 2012-02-07 15:52 awp110 阅读(7) 评论(0) 编辑
Aspect Classes

The following table gives a list of available primitive aspect classes. Every aspect class is described in greater detailed in the class reference documentation.

Aspect Type

Targets

Description

OnMethodBoundaryAspect

Methods

Methods enhanced with an OnMethodBoundaryAspect are wrapped by a try/catch/finally construct. This aspect provides the advices OnEntry(MethodExecutionArgs), OnSuccess(MethodExecutionArgs), OnException(MethodExecutionArgs) and OnExit(MethodExecutionArgs); these advices are invoked directly from the transformed method. the return value, and the exception (if applicable). This aspect is useful to implement tracing or transaction handling, for instance.

OnExceptionAspect

Methods

Methods enhanced with an OnExceptionAspect are wrapped by a try/catch construct. This aspect provides the advice OnException(MethodExecutionArgs); this advice is invoked from the catch block. This aspect is useful to implement exception handling policies. Contrarily to OnMethodBoundaryAspect, this aspect lets you define the type of caught exceptions by overriding the method GetExceptionType(MethodBase)

MethodInterceptionAspect

Methods

When a method is enhanced by a MethodInterceptionAspect, all calls to this method are replaced by calls to OnInvoke(MethodInterceptionArgs), the only advice of this aspect type. This aspect is useful when the execution of target method can be deferred (asynchronous calls), must be dispatched on a different thread.

LocationInterceptionAspect

Fields, Properties

When a field or property is enhanced by a LocationInterceptionAspect, all calls to its accessors are replaced by calls to advices OnGetValue(LocationInterceptionArgs) and OnSetValue(LocationInterceptionArgs). Fields are transparently replaced by properties. This aspect is useful to implement functionalities that need to get or set the location value, such as the observability design pattern (INotifyPropertyChanged).

EventInterceptionAspect

Events

When an event is enhanced by an EventInterceptionAspect, all calls to its add and remove semantics are replaced by calls to advices OnAddHandler(EventInterceptionArgs) and OnRemoveHandler(EventInterceptionArgs). Additionally, when the event is fired, even of invoking directly the handlers that were added to the event, the advice OnInvokeHandler(EventInterceptionArgs) is called instead. This aspect is useful to add functionalities to events, such as implementing asynchronous events or materialized list of subscribers.

CompositionAspect

Types

This aspect introduces an interface into a type by composition. The interface is introduced statically; the aspect method GetPublicInterfaces(Type) should return the type of introduced interfaces. However, the object implementing the interface is created dynamically at runtime by the implementation of the method CreateImplementationObject(AdviceArgs).

CustomAttributeIntroductionAspect

Any

This aspect introduces a custom attribute on any element of code. A custom attribute can be represented as a CustomAttributeData or a ObjectConstruction.

ManagedResourceIntroductionAspect

Assemblies

This aspect introduces a managed resource into the current assembly.

Tip

The implementation of aspects OnMethodBoundaryAspect and OnExceptionAspect is very efficient; they should be preferred over other aspects whenever it makes sense.

posted @ 2012-02-07 15:25 awp110 阅读(3) 评论(0) 编辑
摘要: PostSharp是一个非常优秀的AOP框架,使用上非常方便,功能强大,对目标拦截的方法不需要做什么修改,但现在已经商业化运作从PostSharp官方网站下载一个试用版,安装简单示例PostSharp采用Post-Compile的方式实现AOP,即对已经生成的程序集,按照拦截规则进行修改,对需要拦截的方法注入拦截代码。这种方式与基于动态代理的方式相比,没有过多限制,比如不需要目标方法为virtual类型或者实现了接口等1. 新建一个PostSharp.Test的Console测试项目添加引用: PostSharp、PostSharp.Laos2. 程序引用的命名空间using System;u阅读全文
posted @ 2012-02-07 13:55 awp110 阅读(5) 评论(0) 编辑
editplus应该不算一个集成环境,而是一个功能强悍的文本编辑器。我经常用它来查看代码(少量的编辑),它个子小,速度超快,用的很是舒心。但是为什么我以前一直不愿意用它来编辑文件呢,没有自动提示功能算是一个,还有就是在保存文件后,它会生成有个.bak的备份文件。而我在大部分时间都用不到这个功能。曾几何时, 我试图因为这个原因想找一款和editplus(还有一款UItraEdit也不错,但同样生成.bak文件)一样棒,但保存时不生成.bak文件的编辑器,结果当然是没找到。今天在研究maven的时候,也遇到这样的问题,于是索性看看,有没有人也抱怨这个问题。google一把,果然很多人遇到这个问题,但是解决办法也是非常的简单的要把我雷倒,如下菜单开始照做



Tools-->Configure User Tools-->Files-->去掉create bacup file when saving前复选框的对号。



ok,当你这样做完以后,就算是搞定了。



原来生不生成backup文件是可以设置的,自己以前不注意研究这款软件,弄得自己都要笑自己了。可惜软件默认生成备份文件本是好心,却给很多人带来麻烦。因为很多人都有自己的备份方案,editplus的.bak对于像我这样的人来说却成了鸡肋。



技巧应用:

1.让editplus写html时使用小写字母表示。

editplus写html时候默认是大写。不知道编写此软件的人是怎么想的,难道是为了别具一格。反正看了就不舒服。原本认为只能忍受了。结果今天在网上一搜,又有好的办法解决。还是editplus自己的功能,废话不多说,方法如下



Tools-->Configure User Tools-->General-->勾选HTML tag in lower case



在新建一个html,就会有比较欣喜的预期结果。
posted @ 2012-02-06 16:25 awp110 阅读(7) 评论(0) 编辑
摘要: visual studio 编译前自动svn更新TortoiseProc.exe /command:update /path:$(ProjectDir) /closeonend:0阅读全文
posted @ 2012-02-02 15:02 awp110 阅读(6) 评论(0) 编辑
摘要: 1.分页查询条件var query={keywords:'your keywords',id:'your id'}; //把查询条件拼接成JSON$("#test").datagrid('options').queryParams=query; //把查询条件赋值给datagrid内部变量$("#test").datagrid('reload'); //重新加载2.阅读全文
posted @ 2012-01-31 16:38 awp110 阅读(9) 评论(0) 编辑
摘要: var EventUtil = {//建新对象 addHandler:function(element,type,func){//添加事件 if(element.addEventListener){ element.addEventListener(type,func,false); }else if(element.attachEvent){ element.attachEvent("on"+ type,func); }else{ element["on"+ type] = func; } }, getEvent:function(event){//获阅读全文
posted @ 2012-01-31 11:08 awp110 阅读(9) 评论(0) 编辑