在Asp.Net中对页面分页的方法很多,可以直接用sql语句分,也可以使用.net提供的PageDataSource类来分页,显示的视图同样可以使用第三方控件AspNetPager等来显示,下面就来重点说说这几种分页方式: 一般情况下我们都是通过sql语句来分页,这在无论哪种开发语音都是通用的, 使用sql语句或者存储过程分页的方式最主要的是要在读取数据的时候把sql语句或者存储过程写好,它的原理是只读取当前要显示的几行记录,所以要根据页数和每页显示的数目来写语句,如下: 很显然只要将pageSize和Page作为参数就可以了,然后再前台调用的时候只要指定当前页数和每页显示的数目,就可以实现分页了,为了显示总数目,还可以读取所有数目,可以通过url来传递页码,如果总记录数位count,每页显示的数目为pageSize,那么总页数就是pageCount=((count-1)/pageSize)+1,在读取的时候代码如下: int rowLine = (currentPage – 1) *pageSize; sql = "Select top pageSize * from News where id not in(select top rowLine id from News)" 然后在页面中 int pp=1; DataSet ds = TransactionsBLL.GetList(kid, pp); DataSet ds1 = TransactionsBLL.GetList(kid); int count = ds1.Tables[0].Rows.Count; int pageCount = ((count-8-1) /16) + 1; if (pp < pageCount) { lblFy.Text = "共" + count + "条 <a href='?id=" + cid + "&pager=1′>首页</a> <a href='?id=" + cid + "&pager=" + (pp – 1) + "'>上一页</a> <a href='?id=" + cid + "&pager=" + (pp + 1) + "'>下一页</a> <a href='?id=" + cid + "&pager=" + pageCount + "'>尾页</a> 当前第" + pp + "页/共" + pageCount + "页"; } else { lblFy.Text = "共" + count + "条 <a href='?id=" + cid + "&pager=1′>首页</a> <a href='?id=" + cid + "&pager=" + (pp – 1) + "'>上一页</a> <a href='?id=" + cid + "&pager=" + pageCount + "'>下一页</a> <a href='?id=" + cid + "&pager=" + pageCount + "'>尾页</a> 当前第" + pp + "页/共" + pageCount + "页"; } 随便粘贴的代码,大概就是这样子的 需要注意的时候,由于.net在回传的时候不保存当前页,所以如果使用按钮进行分页的时候需要使用ViewState来保存页数,每次只读取所需要的几条记录,所以适合做大型网站数量比较大的时候使用,一般的分页都比较简单,如果有这种情况,比如说有10条数据,要求第一页显示2条,其他的页数都显示4条,那么就我们知道就显示3页就可以了,这个要怎么实现呢,其实这个只需要我们稍微判断下就可以了 代码: View Code public DataSet GetList(int pp) { string sql = null; DataSet ds = null; if (pp == 1 || pp == 0) { //第一页的时候显示2行数据 sql = "Select top 2 * from News" } else { //第二页的时候显示除了第一页的2条数据之外的前4条数据 if (pp == 2) { sql = "Select top 4 * from News where id not in(select top 2 id from News)"; } else { //第三页和之后的页显示 (pp – 2) *4 然后在加上第一页的2条,也就是(pp – 2) *4+2条数据之外的前4条数据 int rowLine = (pp – 2) *4+2; sql = "Select top pageSize * from News where id not in(select top rowLine id from News)" } } ds = SqlHelper.ExecuteDataSet(CommandType.Text, sql); return ds; } 然后在页面里我们要获得页数 int pageCount = (((count-2-1) /4) + 1)+1; 一般的情况下pageCount=((count-1) /4) + 1 在这里我们可以先去掉第一页显示的2条数据,然后进行分页,假如是2页,那么因为还有第一页,所以这里还需要在后面再加上一页,也就是 (((count-2-1) /4) + 1)+1; 另外一种分页方式就是使用.net提供的PageDataSource类来分页, PageDataSource是微软提供一个用于分页使用的类,集成了绑定控件的一些方法,在使用的时候,我们只需要从数据库读取我们所要的数据,绑定到PageDataSource即可,然后允许PageDataSource可以分页,指定当前页和每页要显示的数目,这样就可以很好的获得的总的数目,结合控件,ViewState就可以完成自定义分页视图,方法如下: PagedDataSource pageDataSource = new PagedDataSource(); pageDataSource.DataSource = NewsManager.GetNews();//所有记录 pageDataSource.AllowPaging = true; pageDataSource.PageSize […]
View Details处理图片时常用的过程是:读入图片文件并转化为Bitmap -> 处理此Bitmap的每个点以得到需要的效果 -> 保存新的Bitmap到文件 使用C#很方便的就可以把多种格式的图片文件读到Bitmap对象中。一句话就够了,常见的格式都支持,诸如JPEG,BMP,PNG等等。 Bitmap bmp = new Bitmap("文件名"); 然后就是怎么处理这个图片的问题了,与本案无关,pass。 最后就是保存。JPEG虽然是有损压缩方案,但是它在缩减文件体积和尽可能好的保留原有信息的矛盾上很好的找到了平衡点,所以在很多情况下成为首选的保存方案。 C#当然不会无视这一点,Bitmap类提供了默认的另存为JPEG的方法: bmp.Save("输出文件", System.Drawing.Imaging.ImageFormat.Jpeg); 这样当然很方便,但有时候更在乎文件体积而有时候更在乎图像质量,是不是有什么办法可以让自己来控制压缩质量呢? 答案是肯定的,bmp.Save方法中有个重载用到了EncoderParameters参数。我们可以在这个参数中加入自己的控制质量。 /**//// <summary> /// 保存JPG时用 /// </summary> /// <param name="mimeType"></param> /// <returns>得到指定mimeType的ImageCodecInfo</returns> private static ImageCodecInfo GetCodecInfo(string mimeType) { ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders(); foreach (ImageCodecInfo ici in CodecInfo) { if (ici.MimeType == mimeType) return ici; } return null; } /**//// <summary> /// 保存为JPEG格式,支持压缩质量选项 /// </summary> /// <param name="bmp"></param> /// <param name="FileName"></param> /// <param name="Qty"></param> /// <returns></returns> public static bool KiSaveAsJPEG(Bitmap bmp, string FileName, int Qty) { try { EncoderParameter p; EncoderParameters ps; […]
View Details在WEB系统中,打印的确是个烦人的问题。 要么自己开发打印控件,如果项目时间紧,肯定来不及。 要么购买成熟的打印控件,如果是大项目可以考虑,但如果项目只有几K到1、2W之间,这就麻烦了。 前段时间有机会接触了一下WEB打印。在博客园、CSDN上找了老半天,终于,功夫不付有心人,终于找到了。 现在就推荐给大家分享。 1、 DLPrinter DLPrinter打印控件完全免费,界面大方、使用简单、但无签名,支持打印预览、直接打印,可设置页眉、页脚、页边距、打印份数、纸张大小等信息。遗憾的是作者不知道是什么原因,从2007年至今没的更新。 作者博客:http://www.cnblogs.com/Yahong111/ 下载地址:/Files/panshenglu/DLPrinter.rar 打印预览图: 2、墙外打印控件 墙外打印控件(QWPrint)是一款小巧的打印辅助软件,能够帮助众多制作B/S类程序的程序员更加灵活的控制客户端打印。 功能特点: ·小巧轻便,客户端在第一次使用时只要下载一个ActiveX控件即可使用。 ·控制多种打印设置。程序员可以通过控件进行多项设置,包括设置打纸的页边距,页眉页脚,纸张大小等参数。 ·精确控制打印。可以方便实现web下的套打操作。 作者博客:http://www.xwangye.com/ 下载地址:/Files/panshenglu/墙外打印控件.rar 打印预览图: 3、Lodop(强烈推荐) 对于这个打印控件,用一个词来形容:强大!不仅调用方便,而且功能比你想像中要强大得多。 更多介绍大家到作者博客详细了解。 作者博客:http://blog.sina.com.cn/caoyanqingwebsite/ 下载地址:/Files/panshenglu/lodop4.0.zip 打印预览图: 4、楚琳Web打印控件 楚琳Web打印控件是以C/S架构的报表工具进行B/S架构的报表设计 【软件特点】 1、报表功能强大,报表设计采用FastReport,可以和水晶报表媲美,支持自定义纸张大小,支持直接打印。 2、报表设计高效而简单,和C/S架构下的报表设计效率差不多。 3、方便的中国式报表的设计,可以快速而准确设计出报表中的表格线。 4、支持ASP, ASP.NET, PHP, JSP等多开发语言。 5、支持简体中文、英文、繁体中文等多国语言。 6、免费使用,免费版无功能和时间限制。 作者博客:http://www.cnblogs.com/dong0738/ 下载地址:http://www.onlinedown.net/soft/112053.htm http://www.duote.com/soft/30400.html http://www.xinyuerj.com/ASP/楚琳Web打印控件.rar 打印预览图: ——————————————————————————- 如果各位有更好的,请跟帖!谢谢。 转自:http://www.cnblogs.com/panshenglu/archive/2009/09/21/1571258.html
View Details手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能。 人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫描一下,或者搜索一下,然后下单,不找零,直接送到你家,这将是手机支付给我们带来的全新交易体验。 谷歌刚推出了谷歌钱包,这必是我们后面要使用的主要手段,但是鉴于当前国情,我觉得有必要介绍一下android手机集成支付宝功能。 1.下载官方架包和说明文档 其实官方已经提供了安装指南,下载地址: https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash https://mobiless.alipay.com/product/product_down_load.htm?code=SECURITY_PAY 里面有有个pdf,详细说明了说用指南,写的比较详细,可以重点参考。 下载下来,我们主要是用到Android(20120104)目录下的alipay_plugin.jar和AppDemo/assets下的alipay_plugin223_0309.apk,这两个文件是我们不能修改的支付宝api和安装包。 2. 商户签约 现在的安全机制,都是这样,客户端需要先和服务端请求验证后才能进行进一步操作,oauth也是如此。 打开https://ms.alipay.com/,登陆支付宝,点击签约入口,选择"应用类产品",填写并等待审核,获取商户ID和账户ID。 签约的时候还要向需要提供实名认证和上传应用,所以我建议先把应用做好了,最后再集成支付宝。 我大概等了1-2天审核,审核是失败的,回复是应用类型啥的应该是"虚拟货币",我改成那个马上自动就审核通过了。 3.密钥配置 解压openssl-0.9.8k_WIN32(RSA密钥生成工具).zip,打开cmd,命令行进入openssl-0.9.8k_WIN32(RSA密钥生成工具)\bin目录下, (1).执行 1 openssl genrsa -out rsa_private_key.pem 1024 生成rsa_private_key.pem文件。 (2).再执行 1 openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 生成rsa_public_key.pem 文件。 (3).在执行 1 openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt 将RSA私钥转换成 PKCS8 格式,去掉begin和end那两行,把里面的内容拷贝出来,保存到某个txt中,如rsa_private_pkcs8_key.txt中(我好像没用到这个)。 打开rsa_public_key.pem,即商户的公钥,复制到一个新的TXT中,删除文件头”—--BEGIN PUBLIC KEY—--“与文件尾”—--END PUBLIC KEY—--“还有空格、换行,变成一行字符串并保存该 TXT 文件,然后在网站的“我的商家服务”切换卡下的右边点击“密钥管理”,然后有个"上传商户公钥(RSA)"项,选择上传刚才的TXT文件. 好了,服务器配置OK,因为这一段之前没有截图,现在弄好了又不好截图,如果有不明白的地方请大家参考官方文档。 错误提示 failure calling remote service 原因: 私钥没转PKCS8 4.引用jar和包含安装包 (1).新建android工程; (2).copy上面说的alipay_plugin.jar到工程的libs目录下,并在java build path中通过Add External JARs找到并引用该jar; (3).copy上面说的alipay_plugin223_0309.apk安装包到assets目录下,后面配置路径用到。 如果libs和assets目录没有,手动建立者两个目录。 5.调用代码整理 这里我们要严重的参考文档中AppDemo,我们建一个包com.tianxia.lib.baseworld.alipay,把AppDemo的com.alipay.android.appDemo4包下的源码全部copy到刚才我们自己的包下,还有res目录下的资源文件也合并到我们工程res下。 其中AlixDemo.java,ProductListAdapter.java,Products.java是示例类,我们借鉴完后可以删除。 PartnerConfig.java是配置类,配置商户的一些配置参数。 其他的类是严重参考类,直接留下使用。 PartnerConfig.java代码如下: 1 2 3 4 5 6 7 […]
View Details
1 2 3 4 5 |
Android模拟器默认的地址是10.0.2.3,默认的DNS也是10.0.2.3,对于在家里上网学习Android的人来讲,一般电脑的IP都是192.168.1.100之类的,不在同一个网段。所以就会出现电脑可以上网但是模拟器不能上网的情况。其实设置方法很简单,只要把模拟器的默认DNS设置成电脑的DNS地址即可。 第一步:启动模拟器并确保adb连通 第二步:使用adb的shell,确认系统的各项属性 |
1 2 3 |
adb shell getprop |
1 2 3 4 5 |
getprop会列出系统当前的各项属性 第三步:得到模拟器的DNS地址 在结果里可以看到: |
1 2 3 4 |
[net.dns1]: [10.0.2.3] [net.dns2]: [10.0.2.4] [net.dns3]: [10.0.2.5] [net.dns4]: [10.0.2.6] |
1 |
第四步:把dns改成我们自己的DNS |
1 |
setprop net.dns1 192.168.1.1 |
1 |
<strong>注:一般TP-LINK及D-LINK的DNS都是192.168.1.1,如果不是请使用ipcnofig /all命令确认,另外,按照上面的步骤设置好后,需要在模拟器的Setting->无线网络设置里,把“启用数据流量”勾选上,让模拟器的TopTar上出现3G图标,才可上网~</strong> |
1 |
<strong> </strong> |
1 |
以上方法,在重启模拟器后设置的property会丢失,就需要重新设置一遍,可以使用下面的方法解决: |
1 2 3 |
找到你的SDK目录,里面有个system-images文件夹,这里保存着系统镜像文件,用文本编辑器打开里面的build.prop文件,在里面加上net.dns1=自己的DNS,保存;再重新创建模拟器即可~ 转自:<a href="http://www.cnblogs.com/flyme/archive/2011/11/14/2248213.html">http://www.cnblogs.com/flyme/archive/2011/11/14/2248213.html</a> |
根据《计算机技术与软件专业技术资格(水平)考试实施办法》第三条相关规定: 计算机专业技术资格(水平)考试原则上每年组织两次,在每年第二季度和第四季度举行。 各地的报名时间由考生报考所在地的当地考试机构决定。 具体报名时间可参考本网站 各地考试机构 栏目 转自:http://www.rkb.gov.cn/jsj/cms/bkxz/shijian/
View Details下载Eclipse PDT All-In-One http://download.eclipse.org/tools/pdt/downloads/ 安装Zend Debugger · 选择Help->Software Updates->Find and Install · 选择 Search for new features to install, 点击 Next · 点击 the New Remote Site 按钮… Name: Zend Debugger URL: http://downloads.zend.com/pdt · Zend Debugger 现在在Sites to include in search 列表被选中, 点击 Finish按钮。 同样的方式安装JSEclipse(如果需要团队合作还可以装上Subclipse提供对Subversion 的支持) Name: JSEclipse URL: http://download.macromedia.com/pub/labs/jseclipse/autoinstall Name: Subclipse 1.2.x URL: http://subclipse.tigris.org/update_1.2.x Name: Aptana URL: http://update.aptana.com/update/3.2/ PDT调试方法 PHP Executable Debugger Zend Executable Debugger – 免费的Eclipse插件,在Eclipse 环境提供可执行的调试功能 PHP Web Server Debugger Zend Web Server Debugger – 安装在Web 服务器端的调试工具 XDebug Components – XDebug用于Web 服务器端的调试 注:版本发布类型 Released Builds – 稳定经过测试的发布版,可能不包含最新的功能特性 Stable […]
View Detailsnode.js Tools for Visual Studio 提供了在 Visual Studio 中开发 Node.js 应用的扩展。 软件首页 软件下载 转自:http://www.oschina.net/p/nodejstools
View Details