Edi Wang

All Posts 301


JQuery获取浏览器窗口内容部分高度

有时候我们需要得到浏览器窗口内容部分的高度,而不是整个窗口的高度。我试了下JQuery下的window对象,似乎读的正是内容部分,有点意外,不过恰好满足了我们的要求。 下面是测试代码,记得先引用JQuery库 $(document).ready( function() { var h = $(window).height(); alert(h); } ) Firefox下: IE下: 可以发现它获取的却是是窗口的内容部分高度,而不是浏览器窗口的高度。Oh Yeah!...

jQuery window

让Repeater和GridView支持DataPager分页

.NET 3.5中的DataPager碉堡了,可惜只支持ListView。传统的GridView和Repeater都无法直接使用DataPager分页。但我们如果稍加改造,就可以让Repeater和GridView支持DataPager分页。本网站的博客和留言板就是用Repeater+DataPager做的分页。 改造办法是自己写一个控件,让它继承GridView或Repeater,并实现IPageableItemContainer 接口。下面要发的是国外某高手写的代码,测试有效。具体使用的时候,要建一个类库项目,把代码编译成dll后,就可以添加到VS的工具箱里了! 一、自定义Repeater using System.Web.UI; using System.Web.UI.WebControls; namespace WYJ.Web.Controls { ///...

DataPager GridView Repeater Paging

关于C# if语句中并列条件的执行

我们知道,当两个条件进行逻辑与操作的时候,其中任何一个条件为假,则表达式的结果为假。所以,遇到(A 且 B)这种表达式,如果A为假的话,B是不是真假都无所谓了,当遇到一个假条件的时候,程序也就没有必要去额外的判断剩下的东西了。C#语言中也是如此。当多个条件进行逻辑与操作的时候,判定会从表达式左边执行到右边,遇到任何一个为假,后面就都不做了。这很聪明,然而如果后面的条件会抛出异常,就是个潜在的问题。一旦之前的条件为真,就会继续执行,执行到抛出异常的条件时,程序就爆了,哈哈。 我们可以写个简单的demo试试。下面的这段代码是坑爹的,之后我会说明原因,但大家可以先从直观的层面上理解一下,最后我会给出正确的测试方法。 static void Main(string[] args) { DataSet ds = null; if (false && ds.Tables[...

C# if 条件

C#字符和ASCII码互转

废话不多,直接上代码。 static void Main(string[] args) { char[] charFucks = new char[] { 'f', 'u', 'c', 'k' }; foreach (var item in charFucks) { Console.Write(Convert.ToInt32(item) + " "); } Console.WriteLine(); int[] asciiFucks = new int[] { 102, 117, 99, 107 }; foreach (var item in asciiFucks) { Console.Write((char)item); } Console...

ASCII char 字符

JQuery让页脚部固定在网页底部

一般,在网页上,如果内容较少,页脚就会跑到屏幕中间去,可能会让用户感到蛋疼。 上次看了一篇文章,用CSS的办法来固定页脚到浏览器窗口底部。他优点很明显,不需要JS,并且在调整浏览器窗口大小的时候仍然可以自适应,但写法略复杂,如果项目比较赶进度,就不太能用上了。 今天我就遇到了赶进度的蛋疼事情,所以用JQuery简单搞了一个,但本人前端开发水平很烂,有不完善的地方,高手莫喷。代码如下: // 重定位页脚函数 function repositionFooter(){ var h = $(window).height(); $(".innerBlock").css('min-height',h - 230) }; // 用户调整窗口大小时重定位页脚 var resizeTimer = null; $(window).bind('resize', function(){...

jQuery resize 页脚

VMWare安装Windows 8 Developer Preview蓝屏的解决办法

昨天晚上想试一下Win8,用VMWare8装了一下,结果在"Getting Devices Ready"的时候爆了: 重启之后,又爆了: 根据经验,这应该是安装硬件驱动的时候爆了,说明Win8无法正确识别VMWare的硬件。但很奇怪,我记得网上说VMWare8是可以装Windows8的。经过一番摸索,终于找到了正确的安装办法: 首先,创建虚拟机的时候要选Custom: 然后选Workstation 8.0 选择 I will install the operating system later. 这里选Windows系统,在Version里选择Windows7,如果你下载的Win8镜像是64位的,就选Windows7 x64 到Network Type这步的时候,选择Bridged networking 然后一路next到虚拟机创建完成。然后打开...

VMWare Win8

GridView手写事件,包括取主键、取值、更新、选择、删除

刚才在调整网站友情链接管理页面,里面有个简单的GridView。因为更改了架构,所以需要手工给GridView编写编辑、删除等事件。最近也经常碰到有人问我GridView的问题,于是写成经验之书以警后人。 图片是本网站后台的友情链接管理页面: 1. 手写[编辑]功能时,要编写的事件: 一共有3个: RowEditing RowCancelingEdit RowUpdating 前两者的代码比较固定,一般都是: protected void gvFriendLink_RowEditing(object sender, GridViewEditEventArgs e) { gvFriendLink.EditIndex = e.NewEditIndex; FetchData(); } protected void gvFriendLink_Row...

GridView

网站建设的一些体会——技术背后的思考

1.极致的高深就是简洁 我是今年六月开始我的毕业设计的,这个项目是对我大一时做的个人网站进行重构,算是个维护项目。刚开始时,我就预感到这是一项艰巨的任务。首先,在用户界面上,我需要创作一个新的形象。大一时设计的旧版界面已经略显过时了。在新版面的设计上,我不想给访客留下诸如“简陋”——设计的过于简单,或“华而不实”——漂亮但不中用的印象。我研究了国内外许多网站,最终体会到一个事实——极致的高深就是简洁。所以设计的大方向已经确定——尽量减少页面元素和装饰,通过科学的排版体现信息的本质。一个经久的设计一定是简洁的设计。同年微软针在Windows8 BUILD大会展示的Metro界面也印证了这个未来的设计趋势。 对于我来说,我是学计算机的,没有专门学过视觉设计,因此我购买了许多UI设计类的图书来学习。但至今,我并没有对自己的设计感到满意。我已经发现,“极致的高深就是简洁”其实更侧重与人的素养,...

人生 哲学

ASP.NET生成验证码

好吧,生成验证码不是什么秘密了。原理是产生随机字符,并将字符生成为图片,同时储存到Session里去,然后验证用户输入的内容是否与Session中的验证码相符。下面是本人网站生成验证码的handler: using System; using System.Web; using System.Drawing; public class VDC : IHttpHandler, System.Web.SessionState.IRequiresSessionState { //产生验证码的字符集(去除I 1 l L,O 0等易混字符) public string charSet = "2,3,4,5,6,8,9,A,B,C,D,E,F,G,H,J,K,M,N,P,R,S,U,W,X,Y"; public void ProcessReque...

Captcha Code

SharePoint 2010手动部署wsp包

昨天试着直接在SP网站上上传wsp,结果爆了。今天换了种办法在本机测试成功。赶紧写下经验之书以警后人…… 首先,只需要一个wsp文件,比如D:\SPDeploy\AMW.UI.wsp。dll是不需要额外拷贝的,因为wsp其实是个cab压缩包,用7z打开可以看见里面有个dll。 然后打开SharePoint 2010 Management Shell,用命令部署: 语法是:Add-SPSolution -LiteralPath "wsp路径",然后重启一下iis。 你会看到Deployed是False,没关系,这没有灭,只是剧情需要。现在在GAC里可以看见我们的dll了: 然后打开Central Admin: 点开左边的System Settings,选择Manage Farm Solutions。 之后你会看到我们的amw.ui.wsp是not deployed,...

SharePoint