[原创]不拼装SQL语句实现查询自定义排序规则

mikel阅读(1301)

目前项目需要点击datagrid的某列后台自动按此列的升降规则排序返回分页的结果集,目前用的是ORM的映射Select不是拼装的SQL语句,于是查了下资料

发觉用如下SQL代码实现自定义排序规则:

 

declare @sort nvarchar(60)
declare @order nvarchar(50)
set @sort='Buyer'
set @order='desc'
if @order='desc'
begin
select buyer from View_StockInto
order by case @sort when 'Buyer' then Buyer end  desc
end
else
begin
select buyer from View_StockInto
order by case @sort when 'Buyer' then Buyer end 
end

[转载]easy html5 - Jquery mobile

mikel阅读(1080)

[转载]easy html5 – Jquery mobile – johnny默默 – 博客园.

首先JQuery mobile是基于html5的,因为html5已经被默认为了下一代web标准;各个浏览器厂商已经都对html5有了很好的兼容包括pc端浏览器和移 动设备上的浏览器;我们通常说的html5其实是广义的,html5带来的web体验其实主要包括html5、css3和JavaScript,使用这三 者才能构建优秀web体验的站点,而且是跨设备的;

JQuery mobile既然基于html5,自然少不了html5标签、css3、JavaScript;所以jQuery mobile有了对应的mobile js框架、js组件、js插件、css主题;而且提供了相关api;而且有了方便的移动html在线编辑器codiqa,使用codiqa只需要简单的拖 拽控件就可以简单的搭建mobile page,并且直接保存html文件给你;

 

jQuery mobile支持的设备,jQuerymobile.com按支持的级别分为A、B、C三个级别

3.1

3.2.1

 

 

Jquery mobile themeroller可以简单轻易让你定制自己的控件style,只需简单的拖拽,就可以得到全套的theme

4

 

codiqa帮你轻易创建mobile page,这个在http://jquerymobile.com/上有个,codiqa 官网http://www.codiqa.com/工作区域会更简洁;

jquery首页:

5

 

codiqa首页(需要注册 🙂 )

6

 

当然jquery也提供了demos和相关文档http://jquerymobile.com/demos/1.1.0/

7

 

当然现在只是1.1.0版本,持续关注中…. …

[转载]开发人员必备:微软发布示例代码浏览器 (Sample Browser) 第五版,让您尽享3500个示例代码

mikel阅读(800)

[转载]开发人员必备:微软发布示例代码浏览器 (Sample Browser) 第五版,让您尽享3500个示例代码 – Jialiang – 博客园.

今天早上,微软一站式示例代码库 携手MSDN和微软创新空间 正式发布了示例代码浏览器(Sample Browser)第五版。这是继去年10月第四版发布以来的一次重大升级。有了它,3500多高质量示例代码尽在手边,定能让您和您的开发工作如虎添翼!

您不仅可以轻松下载到800多个来源于广大开发人员心声的微软一站式示例代码库(All-In-One Code Framework)示例代码,还能下载到400多个现最流行的Windows 8 Beta官方示例。还有数不尽,源源不断增加中的Windows Azure, ASP.NET, WPF, Windows Forms, Windows SDK, HTML5代码供你搜索下载。还等什么,快来将示例代码浏览器据为己有吧!

安装:http://aka.ms/samplebrowser

image

image

 

新版示例代码浏览器主要新增功能包括

1. 示例代码搜索范围扩展至3500多高质量MSDN示例

新版浏览器可以搜索到3500多高质量MSDN示例。其中包括800多个来源于广大开发人员心声的微软一站式示例代码库(All-In-One Code Framework)示例代码,400多个现最流行的Windows 8 Beta官方示例,600多个Windows Forms, ASP.NET Silverlight,WPF示例。而且其示例代码数量正在每日剧增。

 

2. 增加示例代码收藏夹功能

你可以轻松地把喜欢的示例代码收藏起来。日后更方便地找到他们。

image

你不仅可以收藏示例,甚至可以将一个搜索收藏起来。比如”所有Visual Studio 2010 C++ 和UAC相关的示例”:

image  image

 

3. 自由的示例代码下载和管理体验

在上一版本的示例代码浏览器中,很多用户反应示例的下载不够灵活,比如用户可能只想下载那些下载过但有更新的示例代码,或者想重新下载某个示例。

新版示例代码浏览器讲给你带来全新的完全的自由度。让你尽情畅享示例代码。

在示例代码列表中,你可以单选或按住Ctrl / Shift / Ctrl+A多选示例,然后右键。在右键菜单中你会惊讶地发现各种想要的下载选项:

image

 

4. 社交网络集成

示例代码浏览器和twitter进行了集成(可惜国内无法使用twitter)。你可以看到twitter上开发人员对于某一个示例代码的讨论,也可以轻松地将某一个示例代码分享到twitter。

image

 

5. 丰富的示例搜索查询条件

我们优化了示例搜索查询条件。新增了按照示例作者进行搜索,按照微软官方示例/社区贡献的示例进行筛选,支持了Visual Studio 11 Beta, Visual Studio LightSwitch,  JavaScript语言,等等。让你想怎么搜,就怎么搜。

image

 

6. 超过20多个小功能,性能提升和问题修复

除了上述提到的新增功能,我们还做了20多处小功能,性能提升和问题修复。例如,我们增加了“取消”按钮让你方便地取消掉某次搜索。

image

还增加了搜索缓存,提升搜索性能。在程序设置界面(Settings),还增加了对搜索历史记录条数的设置,等等。所有这些令人惊讶的改进等着你慢慢体验和发现。 :)

 

反馈

微软一站式示例代码团队非常渴望听到您的使用反馈。请发邮件至onecode@microsoft.com。我们会第一时间回复和感谢您提出的宝贵意见。

 

特别感谢

在这次示例代码浏览器的重大更新背后不少开发人员,测试人员,项目经理做出了非常大的努力。在此特别感谢Leco Lin, Qi Fu, Infi Xu, Jialiang Ge, Dan Ruder, Mei Liang,  Steven Wilssense, Anand Malli, Leo Zhou, Eric Wu, TheSpace, TheGarage。

[转载]jQuery EasyUI DWR Loader

mikel阅读(1326)

[转载]DWR Loader – Extension – jQuery EasyUI.

Include ‘dwrloader.js’

To using DWR to get data for easyui, include ‘dwrloader.js’ file first.

  1. <script type=“text/JavaScript src=“../../JQuery-1.7.2.min.js”></script>  
  2. <script type=“text/JavaScript src=“../../JQuery.easyui.min.js”></script>  
  3. <script type=“text/JavaScript src=“dwrloader.js”></script>  

Assign DWR method to ‘url’ property

As the default json loader, the ‘url’ property indicate the remote URL to retrieve json data. While using DWR loader, we should assign a function to ‘url’ property to retrieve data from DWR. Below is the example that show how to display a datagrid by using dwr loader:

  1. <table id=“dg”></table>  
  2. $(function(){  
  3.     $(‘#dg’).datagrid({  
  4.         columns: [[  
  5.             {field:“id”,title:‘ID’,width:80},  
  6.             {field:“text”,title:‘Text’,width:100}  
  7.         ]],  
  8.         singleSelect: true,  
  9.         autoRowHeight: false,  
  10.         width: 200,  
  11.         height: 200,  
  12.         url: MyTest.getDataGridData  
  13.     });  
  14. });  

The Java test code

  1. public class Test {  
  2.     public List<Map<String,Object>> getDataGridData(){  
  3.         List<Map<String,Object>> items = new ArrayList<Map<String,Object>>();  
  4.         Map<String,Object> item = new HashMap<String,Object>();  
  5.         item.put(“id”, 1);  
  6.         item.put(“text”“text1”);  
  7.         items.add(item);  
  8.         item = new HashMap<String,Object>();  
  9.         item.put(“id”, 2);  
  10.         item.put(“text”“text2”);  
  11.         items.add(item);  
  12.         return items;  
  13.     }  
  14. }  

Download the EasyUI Extension:

[转载]Download jQuery EasyUI 1.2.6 - jQuery EasyUI

mikel阅读(1423)

[转载]Download jQuery EasyUI 1.2.6 – jQuery EasyUI.

Download JQuery EasyUI 1.2.6

 

Current Version: 1.2.6

 

ChangeLog

 

Bug

 

  • tabs: Call ‘add’ method with ‘selected:false’ option, the added tab panel is always selected. fixed.
  • treegrid: The ‘onSelect’ and ‘onUnselect’ events can’t be triggered. fixed.
  • treegrid: Cannot display zero value field. fixed.

 

Improvement

 

  • propertygrid: Add ‘expandGroup’ and ‘collapseGroup’ methods.
  • layout: Allow users to create collapsed layout panels by assigning ‘collapsed’ property to true.
  • layout: Add ‘add’ and ‘remove’ methods that allow users to dynamically add or remove region panel.
  • layout: Additional tool icons can be added on region panel header.
  • calendar: Add ‘firstDay’ option that allow users to set first day of week. Sunday is 0, Monday is 1, …
  • tree: Add ‘lines’ option, true to display tree lines.
  • tree: Add ‘loadFilter’ option that allow users to change data format before loading into the tree.
  • tree: Add ‘loader’ option that allow users to define how to load data from remote server.
  • treegrid: Add ‘onClickCell’ and ‘onDblClickCell’ callback function options.
  • datagrid: Add ‘autoRowHeight’ property that allow users to determine if set the row height based on the contents of that row.
  • datagrid: Improve performance to load large data set.
  • datagrid: Add ‘loader’ option that allow users to define how to load data from remote server.
  • treegrid: Add ‘loader’ option that allow users to define how to load data from remote server.
  • combobox: Add ‘onBeforeLoad’ callback event function.
  • combobox: Add ‘loader’ option that allow users to define how to load data from remote server.
  • Add support for other loading mode such as dwr,xml,etc.

 

New Plugins

 

  • slider: Allows the user to choose a numeric value from a finite range.

 

License: GPL License Commercial License

 

Plugins

 

draggable
droppable
resizable
panel
tabs
accordion
layout
linkbutton
menubutton
splitbutton
menu
form
combo
combobox
combotree
combogrid
numberbox
validatebox
searchbox
messager
progressbar
spinner
numberspinner
timespinner
window
dialog
datagrid
propertygrid
pagination
tree
treegrid
calendar
datebox
datetimebox
slider
parser

 

Download this EasyUI package:

 

 

[转载]构建高性能.NET应用之配置高可用IIS服务器-第三篇 IIS中三个核心组件的讲解(上)

mikel阅读(938)

[转载]构建高性能.NET应用之配置高可用IIS服务器-第三篇 IIS中三个核心组件的讲解(上) – 小洋(燕洋天) – 博客园.

系列文章:

构建高性能.NET应用之配置高可用IIS服务器-第一篇:IIS必须掌握的知识

构建高性能.NET应用之配置高可用IIS服务器-第二篇 IIS请求处理模型

 

       今天的文章的比较的容易,主要讲述IIS中三个比较重要的组件:协议监听者(Protocol Listeners),WWW服务(World Wide Web Publishing Service)和WAS(Windows  Process Activation Service),理解这三个组件的功能,是理解IIS的必须的知识。

 

 

       下面,我们首先来看第一个。

 

协议监听者(Protocol Listeners)

       我们知道,很多不同类型的应用程序都需要它们的客户端以不同的协议与它们进行通信,我们稍微简单的来举几个例子让大家明白:

    1. Web应用程序采用Http来通信。Web应用程序通过接受Http请求和发送Http响应给客户端的方式来进行通信。
    2. WCF应用程序可以采用很多的协议来进行通信,包括:HTTP, NET.TCP, NET.PIPE, 和 NET.MSMQ

       在这里各种不同类型的应用中,协议监听者就是一个负责监听特定协议的请求,然后把请求传递给IIS的组件。每一个协议都有它自己的监听者。IIS7中包括 了四个协议的监听者:HTTP.SYS,NET.TCP,NET.PIPE和NET.MSMQ。如果要对其他的协议进行监听,那么可以采用PlugIn的 方式写新协议的监听者组件,然后插入到IIS7中(就是采用所谓的“插件式”方式)。

 

       IIS 7中采用了HTTP.SYS来对HTTP请求进行监听,同时在安全性方面也有了改进,因为它也可以对SSL的请求进行监听。另外,对于HTTP.SYS,在IIS6和IIS7中都支持一下功能:

    1. HTTP.SYS被实现成为内核模式中的一个组件
    2. HTTP.SYS 直接将接受到的HTTP请求传递给请求的处理工作进程,并且在中途不会出现任何的进程间通信的开销。在IIS6的之前的版本中,HTTP请求首先被用户模 式中的进程inetinfo.exe接受,这个进程再把请求转发给IIS中的工作进程,这个过程就涉及到了工作进程与IIS之前跨进程通信了。
    3. 每一个应用程序池都有自己的基于内核模式的请求队列。当没有足够的工作进程来处理HTTP请求的时候,HTTP.SYS就把新来的请求放在队列中。之后,工作进程会直接从队列中拿出请求进行处理,在过程中不会涉及到进程间通信的开销。
    4. HTTP.SYS会把请求的输出的响应缓存在内核缓存中,方便对后续的请求进行快速的响应。

下面,我们来看第二个组件。

 

WAS(Windows  Process Activation Service)

 

       WAS的主要的职责就是去读取applicationHost.config配置文件中的配置项。有些配置项是用来配置协议监听者的。在之前我们讨论过, 每一个协议都有一个监听者(在IIS6中,可以支持的协议只有HTTP协议,在IIS7中因为引入了插件式的协议监听者的方式,所以可以处理很多的协议, 如果大家还记得话,要把WCF部署在IIS6中,那么就只能通过HTTP协议)。

 

       如果WAS直接与每个特定的协议监听者交互,那么WAS就与这些协议的监听者仅仅的耦合在了一起,不能与其他的协议监听者交互(因为我们无法修改WAS的 代码,除非微软发布新的版本)。所以在IIS7中,在这里就引入了协议监听适配器,其实就是采用了adapter模式了。让WAS依赖抽象,而不是依赖具 体的实现。

 

       协议监听适配器将WAS与具体的协议的监听者隔离。那么每一个协议都有一个协议的适配者。例如HTTP协议的适配者知道如何去适配HTTP.SYS,如果对设计模式比较熟悉的朋友,应该非常清楚这一点了。

 

       WAS读取applicationHost.config配置文件中的配置信息,然后把这些信息用在协议监听适配者上。协议监听适配者采用这些配置的信息来监听特定通道的请求。

 

       WAS除了读取配置信息以外,它还负责其他一些比较重要的职责:

    1. 使用applicationHost.config配置文件的配置信息来配置和启动应用程序池,来处理请求。
    2. 根据applicationHost.config配置文件的配置信息来监控,重启,关闭和管理应用程序池以及相关的工作进程。

 

       理解了上面的内容之后,那么现在应该就非常清楚IIS中请求的处理流程了:

    1. 当请求达到的时候,协议监听程序开始运行。
    2. 特定的协议监听适配者被创建,并且通知特定的应用程序池请求到达。
    3. WAS检查是否已经有一个工作进程在应用程序池中运行,如果没有,WAS就在应用程序池中创建一个新的工作进程,然后把请求交给这个工作进程来处理,并且这个进程也随后去处理应用程序池的请求队列中的请求。

 

系列文章链接:

IIS负载均衡-Application Request Route详解第一篇: ARR介绍  

IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm

 IIS负载均衡-Application Request Route详解第三篇:使用ARR进行Http请求的负载均衡(上) 

IIS负载均衡-Application Request Route详解第三篇:使用ARR进行Http请求的负载均衡(下) 

IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构

 

 

 

负载均衡原理与实践详解 第一篇(重新整理)

负载均衡原理与实践详解 第二篇(重新整理)

负载均衡原理与实践详解 第三篇 服务器负载均衡的基本概念-网络基础

负载均衡原理与实践详解 第四篇 使用负载均衡器的服务器群 

负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解

负载均衡原理与实践详解 第六篇 健康检查机制详解(上)

负载均衡原理与实践详解 第七篇 健康检查机制详解(下)

负载均衡原理与实践详解 第八篇 网络地址转换(上)

负载均衡原理与实践详解 第八篇 网络地址转换(下)

负载均衡原理与实践详解 第九篇 服务器负载均衡技术进阶-会话保持(上)

[转载]分享9个最棒的代码片段资源网站

mikel阅读(843)

[转载]分享9个最棒的代码片段资源网站 – gbin1 – 博客园.

作为一个奋斗在第一线的码农来说,能找到自己能在项目中直接使用的代码无疑是一件天大的喜事。代码片段和代码库到处都有,如何找到自己需要的东西绝对是一个大问题,为了帮助大家更好的找到自己需要的代码,今天我们介绍9个非常不错的代码资源网站

Snipplr

snipplr可以说是世界上最大的代码资源库。在过去的几年中,它发布了大量的代码片段,包括我们网站上的很多文章都引用了snipplr的大量代码。

分享8个最佳的编程代码资源网站

DZone code snippets

一个综合性质的代码库。拥有25中不同编程语言的代码集合,包含了几千的代码片段。

分享8个最佳的编程代码资源网站

Jonas John snippet library

一个综合的代码库,包含了php,C#,visual Basic,JavaScript等。

分享8个最佳的编程代码资源网站

Code Beach

Mac开发者的代码库,包含了C,Ruby,C++,Python等代码片段

分享8个最佳的编程代码资源网站

PHP Snips

如果你做PHP开发,那么这个网站绝对是你需要的代码库。拥有几百号的免费使用的代码。超值!

分享8个最佳的编程代码资源网站

WPRecipes

一个专门收集wordpress代码的网站。大约拥有300个独立的代码片段可供用户选择。

分享8个最佳的编程代码资源网站

Code Codex

使用wiki方式构建的代码资源网站,拥有丰富的C,C++和Java的代码资源。

分享8个最佳的编程代码资源网站

CodeKeep

上万的代码片段,绝对能够找到你需要的代码。包含,C,C++,ASP,VB ,actionscript等

分享8个最佳的编程代码资源网站

GBin1 jQuery/javascript

这里收集了很多大家可能会常用的JQuery/JavaScript代码片段,如果你也有自己不错的代码片段,你也可以投递

分享8个最佳的编程代码资源网站

欢迎访问GBin1.com

[转载]重构36计(2)

mikel阅读(900)

转载重构36计(2) – West_Link – 博客园.

第七计:串联函数调用

当一个类的大部分函数被较为频繁地调用,并且包含连续性地调用,那么可以考虑为这个类中那些没有返回值的函数增加返回值,即返回对象本身,这样就可以串联函数调用,使用起来较为方便,举个例子:

// 表示用户的类
public class User{ public void setName(String name); public void setAge(int age); public void setPhoneNumber(int phoneNumber); }

下面是不使用串联函数调用的情况:

 

User user = new User(); user.setName("West_Link"); user.setAge(3); user.setPhoneNumber(122333);

 

下面是使用串联函数调用的情况:

 

User user = new User().setName("West_Link").setAge(3).setPhoneNumber(123333);

 

只需要为那些函数增加一个User对象的返回值即可,如下:

public User setName(String name){  this.name = name;  return this; }

 

第八计:临时变量在用到时才声明

很多人喜欢在函数的开头把所有要用到的临时变量都声明了,我认为这种方式有以下几个缺点:

1、不利于代码的阅读,需要经常在变量的使用处和变量的声明处跳转,不方便。
2、容易造成资源的浪费,因为有些对象的初始化是比较耗费资源的,而函数可能在用到该对象之前返回。
3、不利于函数的拆分。
所以,我们应该尽可能降低临时变量的作用域,那样它能“捣乱“的范围就被缩至最小了。

 

第九计:保持类的公有函数粒度最小化

一个类的公有函数不应该过多,那样会使类变得臃肿、不易使用,我认为最佳状态是绝大部分公有函数不能被拆分,也就是说,不存在那些通过其他公有函数也能达到目的的函数,例如下面的类:

 

public class StringArray{ // 获取数组的大小
  public int getSize(); // 判断数组是否为空
  public boolean isEmpty(); // 将数据添加到数组的某个索引
  public void add(String value,int index); // 将数据添加到数组的末尾
  public void addToLast(String value); // 将数据添加到数组的起始位置
  public void addToFirst(String value); }

 

StringArray其实只需要两个公有函数即可,即getSize和add,因为isEmpty可以通过getSize来达到相同的目的:getSize() == 0。类似地,addToLast、addToFirst也可以通过add来实现。不过,如果类的公有函数比较少,而且类似isEmpty类似的需求经常被用到,那么保留这些公有函数还是值得的。

 

第十计:将可访问性降至最低

面向对象中的封装性使得我们可以隐藏类或者接口的实现细节,所以,为了让程序 更易维护、接口或者类的使用更加简单,我们应该尽可能降低成员变量或者成员函数的可访问性,辅助函数一定要声明为私有的,确保只将接口函数声明为公有的, 如果该辅助函数可能会被子类用到,则可以声明为保护的。辅助类也应声明为私有的,对于成员变量则一定要声明为私有的,只提供必要的set或者get函数。 总之,当我们增加新的类、成员变量、成员函数时,一定要合理地设置可访问性,暴露给外界的越少越好。

 

第十一计:合并条件减少嵌套

  条件判定如果嵌套的太多会大大降低程序的可读性,很容易滋生Bug,例如:

   

if(a){ if(b || c){ if(d){ ... } } }

 可以合并成:

if(a && (b || c) && d){ ... }

 

 

第十二计:循环中早用continue减少条件嵌套

 除了通过合并条件来减少嵌套层次外,在for或者while循环中,可以用continue来减少条件嵌套,例如:

 

for(int i=0; i<100;i++){ if(a){ if(b){ if(c){ ... } } } }

 

这段代码的嵌套深度是4,使用continue可以大大减少嵌套层次:

 

for(int i=0; i<100;i++){ if(!a) continue; if(!b) continue; if(!c) continue; ... }

 

 

[转载]跟我一起制作数据采集-获取淘宝网店宝贝数据信息(一)

mikel阅读(1205)

[转载]跟我一起制作数据采集-获取淘宝网店宝贝数据信息(一) – Eckel Cheung – 博客园.

创建项目并绘制界面

打开Visual Studio并创建一个基于.net 4.5的WPF项目:GetTaoBaoItems

之所以采用4.5是因为后面我们将要用到里面免费的新的异步编程特性.

绘制如下主界面:

 

下载网页

我们知道要进行网络数据采集必不可少就要下载网页内容,因此我们首先需要构建一个下载网页内容的函数:

注意using System.Net

 

我们下载哪个网页了?

我们可以通过类似网址查看一个店铺的所有宝贝: [淘宝店铺地址]/search.htm,如下图所示:

如上图红圈所示,宝贝是分页显示的那么第二页的地址在哪里了?我们选择第二页:

我们可以得知第k页的网址是:

[淘宝店铺地址]/search.htm?search=y&viewType=grid&orderType=_newOn&pageNum=k#anchor

因此我们就可以得知我们要下载的内容应该是这样的:

先下载第一页的内容并获取红圈所示的总页数,然后下载第二页到最后一页.

 

下载第一页并获取总页数

为获取按钮添加点击按钮事件并在里面添加下载第一页的内容:

下面我们将要讲解我们怎么来获取页面总页数这个数据.

我们这里开始将要用到正则表达式,大家最好先到如下网页进行一定基础的了解:

http://www.yesky.com/imagesnew/software/vbscript/html/jsgrpRegExpSyntax.htm

先添加如下引用:

然后在获取按钮点击事件里添加如下代码:

运行程序并点击获取按钮:

现在将这段代码重构为函数GetPageCount:

 

获取宝贝信息

我们当把某一页网页下载回来之后要做的就是对该网页进行分析,如下代码所示:

运行一下:

那么下面我们将上面的代码重构为函数AnalyPages:

运行代码:

 

将数据显示到界面上

我们先添加如下内容来存储数据:

将其绑定到listbox:

修改之前的函数AnalyPages:

运行程序:

 

对程序进行异步改造

先将下载网页的函数修改如下:

修改使用到了此函数的所有函数:

我们还需要对函数AnalyPages进行二次改造因为这里将会下载数百网页:

我们重构一下循环的内部部分:

改写下AnalyPages本身:

运行程序:

 

下篇文章我们将讲述如何取消正在运行的异步操作,并且将最终数据导出.

[转载]jQuery打印插件

mikel阅读(1239)

.

本插件自己打印链接中指定的页面,可以通过以下方式和参数传递:

$(select).printPage(
{attr : “href”,//链接的href属性
url : false,//特定的url,
message: “请稍后,真正为您准备文档…” }
);

demo页面:http://www.css88.com/demo/jQuery-printPage-plugin/

注意:在IE下打印页面,背景图片和背景颜色默认不打印
解决方案:
在IE的工具里,Internet选项–>高级–>打印(打印背景颜色和图像)选中即可

声明: 本文采用 BY-NC-SA 协议进行授权 | WEB前端开发
转载请注明转自《【jQ插件】jQuery打印插件