终于等到项目评审完,可以静下心来学点东西了。《征服ajax web2.0快速入门与项目实践(.net)》是本好书,照着做了一个数据验证的例子。在此做个总结。
实现这个数据验证,主要有以下几个文件:
Verify.aspx
与用户直接交互的页面文件 为web控件TextBox添加TextChanged事件
Verify.aspx.cs
在Page_Load的进行IsPostBack判断后,为web控件TextBox添加onkeyup事件,即:
txbUsername.Attributes.Add("onkeyup", "CheckUsername(this.value)");
CallBackObject.js(客户端)
供前台页面调用
对XMLHttpRequest对象进行封装,其中的DoCallBack模拟了asp.net的PostBack机制,向服务端发送请求;
CallBackHelper.cs(服务端)
供后台源码调用 (TextChanged事件)
处理CallBackObject对象发出的请求;
在实现的过程中,出现了“此页的状态信息无效,可能已损坏”的错误。如下图:
在网上搜到解决办法(http://www.cnblogs.com/ufo0303/archive/2008/06/06/1146026.html),说是vs的Bug。。
呃,有点无语……
解决方案:
添加web.config中Pages属性,即:
<pages enableEventValidation ="false" viewStateEncryptionMode ="Never">
由于书中讲得很详细,这次的数据验证实现得挺顺利的。但是要实现自动补全功能,就得加强对数据缓存的处理,幸好书里也有仿google Suggest的实例。
============
实例源码下载:http://download.csdn.net/source/1620612
这段时间懈怠了不少,A Za A Za Fighting~