ACCESS任由刷新分页控件(原创)(jQuery+json+ashx)(Ajax)

前不久在开一个品种,

出广大着力的音讯表.

可是这些信都只有发一部分增删改查的连锁操作

大多数表没有业务流的连锁操作.

设若每个表的增删改查相关功能还一个个夺开一个管理页

不只麻烦,也无算是一个程序员有的思想(不了解偷懒人程序员不到底一个吓的程序员)

三四十来张表.每张表做少独管理页.就是七八十人口页面.

那我无思量死.

所以.就打算做一个通用的增删改查控件

题目只是说一个分页显示控件,那还仅是一个有些点.

着重是张本园里对这开的食指较学多.可能会见时有发生把点击吧.呵.

重要是先前我呢召开了一个百般无刷新分页的.

一刹那田园里就是有为数不少人口加我QQ,

很多要源代码(那个本JS压缩了一下),

过多要自教jQuery,

发是就是是问我杀控件怎么用.

只不过那个是用ACCESS+VS2008(jQuery+ashx+json)做的

只不过看看现在之开发.用ACC来开数据库的(大类别).那是未容许的吧

 

俺们以此路是为此之SQL2005+VS2008

之所以便于原先的底蕴上.更加一叠的付出

(jQuery+ashx+json)

中以了josn的序列化与反序列化

照,做了超过数据库接口等

 

自,开始开的时候.

有一个好之设计方案是不可少的.

举行的品种尤为多.就知道前期工作的重要性的.以前有些重视

在充分点吃了大亏,就来了这教训了

 

率先片

下面是本身的数据库设计,还有测试数据表结构设计

ACCESS 1

 

点的五张表是控件要因此的.

下面五张表是测试数据计划

 

仲有的

目录结构

ACCESS 2

Library里面,大家还是开发人员.这个布局看得明吧(不清楚就即设计好不好)

AjaxPages里面纵使放ashx请求处理的页面的

根本是召开了一定量只用户控件

EditGradView.ascx和ShowGradView.ascx

在ShowPage.aspx,EditPage.aspx分别引用这片个用户控件

预先来探望效果吧

ACCESS 3

 

1.点的按钮是力量操作的,选择结果是一个接口

就是是第一列,有取舍框,当你选了何行之时候.点那个选择结果就会见把相应的主键值传给用户,

被用户自行处理怎么操作,

自然,在自身者路里便做了单批量勾功能了

2.充实记录

ACCESS 4

便会见依据你当布置表里配置的数码,

自动生成一个表单,这个表单就是这样的

此实现了几栽控件,

文本框,密码框,日期选择框,文件及传框,下拉框,多行文本框

文本框里以发正则表达式验证(在配置表里配置你若验证的品种),

ACCESS 5

日子就会自动出一个日历控件

ACCESS 6

文件上传.就会透过一个借的(ajax:实际是创造一个iframe)新达成传.把你文件及传上去.返回一个文本称及非常框里

下拉框:当然只有外键和字典的时候.就会见出下拉了

 

 

3查询

点击查询的时候.也会自动根据你当配备表里配置的数据

自行在页页生成一个查询表单

ACCESS 7

平也将您询问及之结果分页

 

3.编辑,删除,自定义

ACCESS 8

会面以每行的后边出现功能操作,当然你得配备可以无可以来这些操作

每当就里.编辑就见面超越到一个编纂表单让您改改

ACCESS 9

啊是同充实记录之表单一样.只不过这里还要将编辑的数目绑定上去

自,在此功能操作里,都生相应的接口

遵照我沾去的时刻,要团结写一个方,

为此自己就是在每个功能操作里描写了一个用户接口

若你引用了的页面里写了一个这么的接口,

不畏见面失掉调整用而协调写的计,没有的话.就行好写的措施

这样的话.我死型,三四十张表.

就是好使配置一个配置表里面的消息

哪怕全都可以自动的实现增删改查了

http://liuju150.cacacoo.com/

当此可以看看效果.只非了及时不是本身之半空中,放到别人空间上的

那里的SQL数据库的排序规则不跟自身的相同.

故而中文有些乱码了.

只不过要好观看效果的喽.

json实体帮助类似

ACCESS 10ACCESS 11Code
ACCESS 12namespace GradView.WebApp.App_Code
ACCESS 13ACCESS 14ACCESS 15{
ACCESS 16    public class JsonHelper
ACCESS 17ACCESS 18    ACCESS 19{
ACCESS 20ACCESS 21        /**//// <summary>
ACCESS 22        /// 生成Json格式
ACCESS 23        /// </summary>
ACCESS 24        /// <typeparam name=”T”></typeparam>
ACCESS 25        /// <param name=”obj”></param>
ACCESS 26        /// <returns></returns>
ACCESS 27        public static string GetJson<T>(T obj)
ACCESS 28ACCESS 29        ACCESS 30{
ACCESS 31            DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
ACCESS 32            using (MemoryStream stream = new MemoryStream())
ACCESS 33ACCESS 34            ACCESS 35{
ACCESS 36                json.WriteObject(stream, obj);
ACCESS 37                string szJson = Encoding.UTF8.GetString(stream.ToArray()); 
ACCESS 38                return szJson;
ACCESS 39            }
ACCESS 40        }
ACCESS 41ACCESS 42        /**//// <summary>
ACCESS 43        /// 获取Json的Model
ACCESS 44        /// </summary>
ACCESS 45        /// <typeparam name=”T”></typeparam>
ACCESS 46        /// <param name=”szJson”></param>
ACCESS 47        /// <returns></returns>
ACCESS 48        public static T ParseFromJson<T>(string szJson)
ACCESS 49ACCESS 50        ACCESS 51{
ACCESS 52            T obj = Activator.CreateInstance<T>();
ACCESS 53            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
ACCESS 54ACCESS 55            ACCESS 56{
ACCESS 57                DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
ACCESS 58                return (T)serializer.ReadObject(ms);
ACCESS 59            }
ACCESS 60        }
ACCESS 61    }
ACCESS 62}

json数据表帮助类似

ACCESS 63ACCESS 64Code
ACCESS 65namespace GradView.WebApp.App_Code
ACCESS 66ACCESS 67ACCESS 68{
ACCESS 69    public static class JsonTableHelper
ACCESS 70ACCESS 71    ACCESS 72{
ACCESS 73ACCESS 74        /**//// <summary> 
ACCESS 75        /// 返回对象序列化 
ACCESS 76        /// </summary> 
ACCESS 77        /// <param name=”obj”>源对象</param> 
ACCESS 78        /// <returns>json数据</returns> 
ACCESS 79        public static string ToJson(this object obj)
ACCESS 80ACCESS 81        ACCESS 82{
ACCESS 83            JavaScriptSerializer serialize = new JavaScriptSerializer();
ACCESS 84            return serialize.Serialize(obj);
ACCESS 85        }
ACCESS 86
ACCESS 87ACCESS 88        /**//// <summary> 
ACCESS 89        /// 控制深度 
ACCESS 90        /// </summary> 
ACCESS 91        /// <param name=”obj”>源对象</param> 
ACCESS 92        /// <param name=”recursionDepth”>深度</param> 
ACCESS 93        /// <returns>json数据</returns> 
ACCESS 94        public static string ToJson(this object obj, int recursionDepth)
ACCESS 95ACCESS 96        ACCESS 97{
ACCESS 98            JavaScriptSerializer serialize = new JavaScriptSerializer();
ACCESS 99            serialize.RecursionLimit = recursionDepth;
ACCESS 100            return serialize.Serialize(obj);
ACCESS 101        }
ACCESS 102
ACCESS 103ACCESS 104        /**//// <summary> 
ACCESS 105        /// DataTable转为json 
ACCESS 106        /// </summary> 
ACCESS 107        /// <param name=”dt”>DataTable</param> 
ACCESS 108        /// <returns>json数据</returns> 
ACCESS 109        public static string ToJson(DataTable dt)
ACCESS 110ACCESS 111        ACCESS 112{
ACCESS 113            Dictionary<string, object> dic = new Dictionary<string, object>();
ACCESS 114
ACCESS 115            int index = 0;
ACCESS 116            foreach (DataRow dr in dt.Rows)
ACCESS 117ACCESS 118            ACCESS 119{
ACCESS 120                Dictionary<string, object> result = new Dictionary<string, object>();
ACCESS 121
ACCESS 122                foreach (DataColumn dc in dt.Columns)
ACCESS 123ACCESS 124                ACCESS 125{
ACCESS 126                    result.Add(dc.ColumnName, dr[dc].ToString());
ACCESS 127                }
ACCESS 128                dic.Add(index.ToString(), result);
ACCESS 129                index++;
ACCESS 130            }
ACCESS 131            return ToJson(dic);
ACCESS 132        }
ACCESS 133    }
ACCESS 134}

 http://www.cnblogs.com/liuju150/archive/2009/09/11/1565009.html
此处是表单的照操作

数据操作方法

ACCESS 135ACCESS 136Code
ACCESS 137namespace GradView.Library.Data
ACCESS 138ACCESS 139ACCESS 140{    
ACCESS 141ACCESS 142    /**//// <summary>
ACCESS 143    ///Title: Classinfo类
ACCESS 144    ///Description: Classinfo业务逻辑操作类
ACCESS 145    ///@author LiuJu
ACCESS 146    ///@version 1.0.0.0
ACCESS 147    ///@date 2009-8-29
ACCESS 148    ///@modify 
ACCESS 149    ///@date 
ACCESS 150    /// </summary>
ACCESS 151    [DataObject(true)]
ACCESS 152    public partial class BizClassinfo
ACCESS 153ACCESS 154    ACCESS 155{
ACCESS 156        private static IDataBaseOperate< Classinfo> baseOperate =(IDataBaseOperate< Classinfo>) DaoFactory.CreateInstance(“DaoClassinfo”);
ACCESS 157        
ACCESS 158ACCESS 159        BaseOperation#region BaseOperation
ACCESS 160        
ACCESS 161ACCESS 162        /**//// <summary>
ACCESS 163        /// 在dbo.ClassInfo中增加一长长的记下
ACCESS 164        /// </summary>
ACCESS 165        /// <param name=”model”>包含被插入数据的实体对象</param>
ACCESS 166        /// <returns>影响行数</returns>
ACCESS 167        [DataObjectMethod(DataObjectMethodType.Insert)]
ACCESS 168        public static int Insert(Classinfo model)
ACCESS 169ACCESS 170        ACCESS 171{
ACCESS 172            if(model != null)
ACCESS 173                return baseOperate.Insert(model);
ACCESS 174            else
ACCESS 175                throw new ApplicationException(“在dbo.ClassInfo中增加一久记下时,传递的参数model为Null!”);
ACCESS 176        }
ACCESS 177        
ACCESS 178ACCESS 179        /**//// <summary>
ACCESS 180        /// 在dbo.ClassInfo中新增同长条记下,支持数据库事务
ACCESS 181        /// </summary>
ACCESS 182        /// <param name=”model”>包含被插入数据的实体对象</param>
ACCESS 183        /// <param name=”trans”>事务参数</param>
ACCESS 184        /// <returns>影响行数</returns>
ACCESS 185        [DataObjectMethod(DataObjectMethodType.Insert)]
ACCESS 186        public static int Insert(Classinfo model,object trans)
ACCESS 187ACCESS 188        ACCESS 189{
ACCESS 190            if(model != null && trans !=null)
ACCESS 191                return baseOperate.Insert(model,trans);
ACCESS 192            else
ACCESS 193                 throw new ApplicationException(“在dbo.ClassInfo中增加一长条记下时,传递的参数model,trans有左!”);;
ACCESS 194        }
ACCESS 195        
ACCESS 196ACCESS 197        /**//// <summary>
ACCESS 198        /// 在dbo.ClassInfo中删除一漫漫记下
ACCESS 199        /// </summary>
ACCESS 200        /// <param name=”model”>包含主键值的实业对象</param>
ACCESS 201        /// <returns>所影响之行数</returns>
ACCESS 202        [DataObjectMethod(DataObjectMethodType.Delete)]
ACCESS 203        public static int Delete(Classinfo model)
ACCESS 204ACCESS 205        ACCESS 206{
ACCESS 207            if(model != null)
ACCESS 208                return baseOperate.Delete(model);    
ACCESS 209            else
ACCESS 210                throw new ApplicationException(“在dbo.ClassInfo中删除一长记下时,传递的参数model为Null!”);;
ACCESS 211        }
ACCESS 212        
ACCESS 213ACCESS 214        /**//// <summary>
ACCESS 215        /// 在dbo.ClassInfo中删除一修记下,支持数据库事务
ACCESS 216        /// </summary>
ACCESS 217        /// <param name=”model”>包含主键值的实业对象</param>
ACCESS 218        /// <param name=”trans”>事务参数</param>
ACCESS 219        /// <returns>所影响之行数</returns>
ACCESS 220        [DataObjectMethod(DataObjectMethodType.Delete)]
ACCESS 221        public static int Delete(Classinfo model,object trans)
ACCESS 222ACCESS 223        ACCESS 224{
ACCESS 225            if(model != null && trans !=null )
ACCESS 226                return baseOperate.Delete(model,trans);    
ACCESS 227            else
ACCESS 228                throw new ApplicationException(“在dbo.ClassInfo中删除一修记下时,传递的参数model,trans有错!”);
ACCESS 229        }
ACCESS 230        
ACCESS 231        
ACCESS 232ACCESS 233        /**//// <summary>
ACCESS 234        /// 在dbo.ClassInfo中完整更新一长达记下
ACCESS 235        /// </summary>
ACCESS 236        /// <param name=”model”>包含被更新数据的实业对象</param>
ACCESS 237        /// <returns>影响行数</returns>
ACCESS 238        [DataObjectMethod(DataObjectMethodType.Update)]
ACCESS 239        public static int  Update(Classinfo model)
ACCESS 240ACCESS 241        ACCESS 242{
ACCESS 243            if(model != null)
ACCESS 244                return baseOperate.Update(model);
ACCESS 245            else
ACCESS 246                 throw new ApplicationException(“在dbo.ClassInfo中更新一条记下时,传递的参数model为Null!”);
ACCESS 247        }
ACCESS 248        
ACCESS 249ACCESS 250        /**//// <summary>
ACCESS 251        /// 在dbo.ClassInfo中完整更新一长长的记下,支持数据库事务
ACCESS 252        /// </summary>
ACCESS 253        /// <param name=”model”>包含被更新数据的实体对象</param>
ACCESS 254        /// <param name=”trans”>事务参数</param>
ACCESS 255        /// <returns>影响行数</returns>
ACCESS 256        [DataObjectMethod(DataObjectMethodType.Update)]
ACCESS 257        public static int Update(Classinfo model,object trans)
ACCESS 258ACCESS 259        ACCESS 260{
ACCESS 261            if(model != null && trans !=null)
ACCESS 262                return baseOperate.Update(model,trans);
ACCESS 263            else
ACCESS 264               throw new ApplicationException(“在dbo.ClassInfo中更新一长长的记下时,传递的参数model,trans有荒唐!”);
ACCESS 265        }
ACCESS 266        
ACCESS 267        
ACCESS 268ACCESS 269        /**//// <summary>
ACCESS 270        /// 根据指定的Sql更新dbo.ClassInfo表中之一样漫漫记下
ACCESS 271        /// </summary>
ACCESS 272        /// <param name=”sql”>Update的Sql语句</param>
ACCESS 273        /// <param name=”parms”>sql参数</param>
ACCESS 274        /// <returns>返回数据库让影响的记录数</returns>
ACCESS 275        [DataObjectMethod(DataObjectMethodType.Update)]
ACCESS 276          public static int Update(string sql, object[] parms)
ACCESS 277ACCESS 278        ACCESS 279{
ACCESS 280            if(sql != null && parms !=null)
ACCESS 281                return baseOperate.Update(sql,parms);
ACCESS 282            else
ACCESS 283               throw new ApplicationException(“根据指定的Sql在dbo.ClassInfo中更新一长长的记下时,传递的参数sql,parms有左!”);
ACCESS 284        }
ACCESS 285
ACCESS 286
ACCESS 287ACCESS 288        /**//// <summary>
ACCESS 289        /// 根据指定的Sql更新dbo.ClassInfo表中之均等漫漫记下,支持数据库事务.
ACCESS 290        /// </summary>
ACCESS 291        /// <param name=”sql”>Update的Sql语句</param>
ACCESS 292        /// <param name=”parms”>sql参数</param>
ACCESS 293        /// <param name=”trans”>事务参数</param>
ACCESS 294        /// <returns>返回数据库让影响之记录数</returns>
ACCESS 295        [DataObjectMethod(DataObjectMethodType.Update)]
ACCESS 296          public static int Update(string sql, object[] parms, object trans)
ACCESS 297ACCESS 298        ACCESS 299{
ACCESS 300            if(sql != null && parms !=null && trans !=null)
ACCESS 301                return baseOperate.Update(sql,parms,trans);
ACCESS 302            else
ACCESS 303               throw new ApplicationException(“根据指定的Sql在dbo.ClassInfo中更新一漫长记下时,传递的参数sql,parms,trans有左!”);
ACCESS 304        }
ACCESS 305        
ACCESS 306            
ACCESS 307        
ACCESS 308        
ACCESS 309ACCESS 310        /**//// <summary>
ACCESS 311        /// 根据主键获取dbo.ClassInfo中的平条记下
ACCESS 312        /// </summary>
ACCESS 313        /// <param name=”id”></param>
ACCESS 314        /// <returns></returns>
ACCESS 315        [DataObjectMethod(DataObjectMethodType.Select)]
ACCESS 316        public  static Classinfo GetModel(Classinfo model)
ACCESS 317ACCESS 318        ACCESS 319{
ACCESS 320            if(model != null )
ACCESS 321                return baseOperate.GetModel(model);    
ACCESS 322            else
ACCESS 323                throw new ApplicationException(“根据主键获取dbo.ClassInfo中的均等长长的记下时,传递的参数model为Null!”);
ACCESS 324                    
ACCESS 325        }
ACCESS 326        
ACCESS 327        // <summary>
ACCESS 328ACCESS 329        /**//// 因指定的SQL获取dbo.ClassInfo中的同样漫长记下
ACCESS 330        /// </summary>
ACCESS 331        /// <param name=”sql”>SQL语句</param>
ACCESS 332        /// <returns>实体对象</returns>
ACCESS 333        [DataObjectMethod(DataObjectMethodType.Select)]
ACCESS 334          public static Classinfo  GetModel(string sql,object[] parms)
ACCESS 335ACCESS 336        ACCESS 337{
ACCESS 338            if(!string.IsNullOrEmpty(sql))
ACCESS 339                return baseOperate.GetModel(sql,parms);    
ACCESS 340            else
ACCESS 341                throw new ApplicationException(“根据指定的SQL获取dbo.ClassInfo中的等同长达记下时,传递的参数sql为Null!”);
ACCESS 342        }
ACCESS 343        
ACCESS 344        
ACCESS 345ACCESS 346        /**//// <summary>
ACCESS 347        /// 在dbo.ClassInfo中获取具有记录
ACCESS 348        /// </summary>
ACCESS 349        /// <returns></returns>
ACCESS 350        [DataObjectMethod(DataObjectMethodType.Select)]
ACCESS 351        public static IList<Classinfo> GetList()
ACCESS 352ACCESS 353        ACCESS 354{
ACCESS 355            return baseOperate.GetList();
ACCESS 356        }
ACCESS 357        
ACCESS 358ACCESS 359        /**//// <summary>
ACCESS 360        /// 根据指定的SQL在dbo.ClassInfo中获取具有记录
ACCESS 361        /// </summary>
ACCESS 362        /// <param name=”sql”>SQL语句</param>
ACCESS 363        /// <returns>记录集</returns>
ACCESS 364        [DataObjectMethod(DataObjectMethodType.Select)]
ACCESS 365        public static IList<Classinfo> GetList(string sql,object[] parms)
ACCESS 366ACCESS 367        ACCESS 368{
ACCESS 369            if(!string.IsNullOrEmpty(sql))
ACCESS 370                return baseOperate.GetList(sql,parms);    
ACCESS 371            else
ACCESS 372                throw new ApplicationException(“根据指定的SQL在dbo.ClassInfo中获取有记录时,传递的参数sql为Null!”);
ACCESS 373        }    
ACCESS 374        
ACCESS 375ACCESS 376        /**//// <summary>
ACCESS 377        /// 在dbo.ClassInfo中查询有条记下是否留存
ACCESS 378        /// </summary>
ACCESS 379        /// <param name=”model”>包含主键值的实业对象</param>
ACCESS 380        /// <returns>存在返加true,不存回false</returns>
ACCESS 381        [DataObjectMethod(DataObjectMethodType.Select)]
ACCESS 382        public static bool Exists(Classinfo model)
ACCESS 383ACCESS 384        ACCESS 385{
ACCESS 386            if(model != null )
ACCESS 387                return baseOperate.Exists(model);    
ACCESS 388            else
ACCESS 389                throw new ApplicationException(“在dbo.ClassInfo中查询有修记下是否有时时,传递的参数model为Null!”);
ACCESS 390                    
ACCESS 391        }
ACCESS 392        
ACCESS 393        #endregion
ACCESS 394    }
ACCESS 395}

 

相关文章