现实中很多项目中页面都会有复杂的操作,增删改、分页已经很普遍了。还有数据验证、编辑指定列等功能。
现把所有功能都写在一个页面中,方便需要的朋友参考。
示例用到的相关组件:
Extjs版本:3.2.1
Newtonsoft.Json.dll (把数据序列化为Json格式)文件可在Newtonsoft官网去下载http://james.newtonking.com/
AjaxPro.2.dll (直接与页面后台通过Ajax方式交互)官网地址:http://ajaxpro.codeplex.com
Oracle.DataAccess.dll 由Oracle安装文件中获取,提供对Oracle数据库的操作相关。示例使用Oracle10g,文件路径F:/oracle/product/10.2.0/db_1/BIN 可根据自己安装目录寻取
1、Oracle数据库表:
create table MacInfo (
MacInfo_ID varchar2(17) primary key,
Com_ID int null,
ComUser_ID int null,
Mac_Address varchar2(17) not null,
Mac_ApplyIP int null,
Mac_Status int null,
Mac_UserName nvarchar2(50) null,
Mac_Remark nvarchar2(200) null
)
2、项目相关配置:
I、添加对Oracle.DataAccess.dll、AjaxPro.2.dll、Newtonsoft.Json.dll的引用
II、在Web.config中添加如下配置
<configuration>
<location path="ajaxpro">
<system.web>
<httpHandlers>
<add verb="GET,POST" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
</system.web>
</location>
</configuration>
3、页面关键代码:
说明:页面使用到了ProgressBarPager.js(滚动条式分页)和RowEditor.js(行内编辑)文件
RowEditor.js文件做了点修改。代码如下:
onRowClick: function(g, rowIndex, e){
if(state=='add'){}else{
if(this.clicksToEdit == 'auto'){
var li = this.lastClickIndex;
this.lastClickIndex = rowIndex;
if(li != rowIndex && !this.isVisible()){
return;
}
}
this.startEditing(rowIndex, false);
this.doFocus.defer(this.focusDelay, this, [e.getPoint()]);
}
},
onRowDblClick: function(g, rowIndex, e){
if(state=='add'){}else{
this.startEditing(rowIndex, false);
this.doFocus.defer(this.focusDelay, this, [e.getPoint()]);
}
},
下面是数据展示主页面代码:ExtEditPage.aspx
页面后台:ExtEditPage.aspx.cs
Common类:
DMacInfo类:
DBHelper类:
Model类:
OK,好像代码挺多。哈哈!
整理的比较重忙,有问题的话,希望发现的朋友指出!
页面效果图: