Edi Wang

Azure Developer, Microsoft MVP

All Posts


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); } …

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

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_ …

GridView

ASP.NET生成验证码

好吧,生成验证码不是什么秘密了。原理是产生随机字符,并将字符生成为图片,同时储存到Session里去,然后验证用户输入的内容是否与Session中的验证码相符。下面是本人网站生成验证码的handler: <%@ WebHandler Language="C#" Class="VDC" %> 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, …

Captcha Code

用LINQ查询XML并绑定给GridView显示

前天嘴贱,建议老Y用XML存一个表格然后绑给GridView,本意是用个偷懒的办法快速解决了那个case,结果做的时候没那么方便,或者说直接把GridView绑定到一个XML文件不太好,如果通过DataTable来处理也显得比较麻烦。 比较好的办法其实是绑给业务对象,就和以前ORM一样做,GridView最终绑的是一个List<数据Model>。那么怎么来读取XML呢最方便呢?当然是用LINQ!可以参考我博客上的这篇文章:http://www.wyjexplorer.cn/Blog/View/EC3073A1BDFB9D90.html 今天抽出来单独写了一个Demo示众,3步搞定! 1.搞个XML文件: <?xml version="1.0" encoding="utf-8" ?> <Contacts> <Person> …

GridView LINQ XML

ASP.NET给用户控件(.ascx)增加属性

我们常用ascx封装用户控件,但我们要访问ascx里的控件的值非常麻烦,如果能给用户控件封装几个属性,就可以在VS的属性面板里进行设置,或者在程序里直接访问“ascx控件.属性值”了。 其实做法很简单,因为用户控件也是一个类,所以我们可以给这个类增加属性,就像设计一个普通的类一样对待。注意,是C#的属性,是public的,而不是字段。 下面的代码演示了我如何将TinyMCE文本编辑器封装为一个Editor.ascx,并给它设置Text属性: ascx页面代码: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Editor.ascx.cs" Inherits="Console_Editor" %> <script type="text/javascript" src="/ …

ascx

高效程序猿之(四)VS2010其他技巧

1.快速打开项目文件夹 一种方法是在开始页面上,对项目点右键,选择“打开所在的文件夹” 另一种方法,是在项目打开后,对解决方案或项目点右键,同样有个“在Windows资源管理器中打开文件夹” 2.重命名 如果要对代码中的一个变量或类名进行重命名,就需要更改所有用到这个类型的语句。手动一个个更改显然会蛋疼。VS给了我们一种高效的重命名办法: 在类型名称上点右键,重构,重命名。更快的办法是将光标点到类型名称上,然后按下Ctrl+R,R 这样,VS就会自动查找和替换所有被引用的名称 3.快速输入相同数据 大家可能知道Word中的矩形选择框,同样,VS2010中也有这个功能,并且现在可以选择0字符宽度的选择框用于输入内容。方法是按住ALT,然后按住鼠标左键选择。 例如下面的实例,我希望给每个标记之前,都加上 ,我可以按住ALT+鼠标左键,选中第一个到最后一个 …

Visual Studio

ASP.NET使用ashx输出图片

以前我们在.NET里动态输出图片,往往是建一个aspx,把里面的html代码都删光,然后在cs代码里用response输出一个图片类型的stream。之后指定Image控件的url为这个aspx就行。但是,更好的做法是用ashx。 先简单介绍一下ashx: ashx是ASP.NET里的web handler,用来处理Http请求。因为它不是aspx,所以它无需走aspx的生成过程,避免了事件、控件树等的处理,因此性能比aspx好,并且编写ashx只需要关心request的处理,不用关心web界面上的表现,有点类似JavaEE里的Servlet。动态生成图片这样的事用ashx做再好不过啦! 以我网站Web App里二维码生成器为例。原先生成图片的aspx后台代码如下: protected void Page_Load(object sender, EventArgs e) { …

ashx stream Image

C#将窗口最小化到系统托盘,并显示图标和快捷菜单

1. 拖一个notifyIcon和一个contextMenuStrip过来,他们会出现在窗体设计器的最下方: 然后完成你的menu,它暂时会出现在form上,但没关系,运行的时候不会显示。 2. 给notifyIcon设置icon属性,这一步很重要,不然系统托盘处不会有图标。然后将ContextMenuStrip属性设置为刚才的那个快捷菜单。 3. 现在运行程序的时候,任务栏右下角系统托盘处就会有我们的图标和菜单: 4. 现在我们来处理最小化隐藏和还原的问题: 首先要将form的ShowInTaskBar属性设为false,这样它就不会在任务栏中显示。但如果现在最小化,屏幕左下角仍然会有一条细小的标题栏。这里我们需要手工处理一下: 在form的resize事件里这样写: private void frmMain_Resize(object sender, …

C# WinForm Icon

Windows 7 64位版IIS不能连接Access数据库的解决办法

今天我把系统换成了64位版的Windows7,结果配完IIS打开网站测试的时候,顿时菊花一紧:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。 查了半天发现是IIS跑在64位环境下引起的。而64位下,是木有Access数据库的驱动的(包括Excel也不行)。 解决办法是:在目标网站的应用程序池中选择高级设置,然后将启用32位应用程序设置为true,重启IIS即可!

ACCESS IIS