在应用中我们会经常遇到表单的展现与管理问题,现在为了更加灵活的管理和操作,更多的人采用了ajax的方式来进行,MVC为我们提供了一个良好的系统架构,简单而言我们只要通过view中的ajax就可以直接访问Controller中的对应方法来实现ajax的请求,从而完成数据的交互,达到管理的目的。
我们下面将分别对列表、添加、修改和删除进行讲解,该实例来自VonPortal中的模块管理,分别实现模块中的文件上传以及文件功能的注册管理。
在这里涉及到三个表结构,这里不再详细说明,对应的结构类代码如下:
//模块信息(PTL_Module) #region "模块信息信息类声明" namespace VonPortal.Web.Models { /// <summary>模块信息 信息类</summary> public class ModuleInfo { #region "Public Properties" /// <summary>序号</summary> [Required] [Display(Name = "序号")] public int ID { get; set; } /// <summary>网站序号</summary> [Required] [Display(Name = "网站序号")] public int SiteIdx { get; set; } /// <summary>模块名称</summary> [Display(Name = "模块名称")] public string ModuleName { get; set; } /// <summary>版本信息</summary> [Display(Name = "版本信息")] public string Version { get; set; } /// <summary>作者</summary> [Display(Name = "作者")] public string Author { get; set; } /// <summary>版权所有</summary> [Display(Name = "版权所有")] public string Owner { get; set; } /// <summary>版权说明</summary> [Display(Name = "版权说明")] public string Copyright { get; set; } /// <summary>有效期</summary> [Display(Name = "有效期")] public DateTime AvailDate { get; set; } #endregion } } #endregion #region "模块信息信息基础控制类声明" namespace VonPortal.Web.Operators { /// <summary>模块信息 控制类</summary> public class ModuleCtrl { private ModuleDataProvider dataProvider = null; public IDbTransaction BeginTrans() { dataProvider = ModuleDataProvider.CreateProvider(); return dataProvider.DBBeginTrans(); } public ModuleCtrl(IDbTransaction DBTrans) { if (DBTrans == null) dataProvider = ModuleDataProvider.Instance(); else { dataProvider = ModuleDataProvider.CreateProvider(); dataProvider.DBTrans = DBTrans; } } //Read data and write to ModuleInfo class private void setInfoValue(IDataReader reader, ModuleInfo info) { info.ID = reader.GetInt32(0); //序号 info.SiteIdx = reader.GetInt32(1); //网站序号 info.ModuleName = reader.GetString(2); //模块名称 info.Version = reader.GetString(3); //版本信息 info.Author = reader.GetString(4); //作者 info.Owner = reader.GetString(5); //版权所有 info.Copyright = reader.GetString(6); //版权说明 info.AvailDate = reader.GetDateTime(7); ; //有效期 } /// <summary>检验Module信息</summary> public string Check(ModuleInfo info) { string errInfo = ""; return errInfo; } /// <summary> /// 根据主键 PK_Module 提取信息 /// </summary> /// <param name="int ID>序号</param> public ModuleInfo GetByModule(int ID) { IDataReader reader = dataProvider.GetByModule(ID); if (!reader.Read()) { reader.Close(); return null; } ModuleInfo info = new ModuleInfo(); setInfoValue(reader, info); reader.Close(); return info; } /// <summary>得到模块说明信息</summary> ///<param name="int ID>序号</param> ///<param name="VonKeyValueCollection Note">模块说明</param> public string GetNote(int ID) { return dataProvider.GetNote(ID); } /// <summary>得到创建SQL信息</summary> ///<param name="int ID>序号</param> ///<param name="VonKeyValueCollection InitSQL">创建SQL</param> public string GetInitSQL(int ID) { return dataProvider.GetInitSQL(ID); } /// <summary>得到删除SQL信息</summary> ///<param name="int ID>序号</param> ///<param name="VonKeyValueCollection DelSQL">删除SQL</param> public string GetDelSQL(int ID) { return dataProvider.GetDelSQL(ID); } /// <summary>根据外键 FK_MODULE_REF_SITE 提取信息</summary> public List<ModuleInfo> ListByMODULE_REF_SITE(int SiteIdx, bool IncludePortal) { List<ModuleInfo> list = new List<ModuleInfo>(); IDataReader reader = dataProvider.ListByMODULE_REF_SITE(SiteIdx, IncludePortal); while (reader.Read()) { ModuleInfo info = new ModuleInfo(); setInfoValue(reader, info); list.Add(info); } reader.Close(); return list; } /// <summary>保存Module信息</summary> ///<param name="TModuleInfo info">信息类</param> public bool Save(ModuleInfo info) { info.ID = dataProvider.Save(info.ID, info.SiteIdx, info.ModuleName, info.Version, info.Author, info.Owner, info.Copyright, info.AvailDate); return info.ID > 0; } /// <summary>添加Module信息</summary> ///<param name="TModuleInfo info">信息类</param> public int Add(ModuleInfo info) { info.ID = dataProvider.Add(info.SiteIdx, info.ModuleName, info.Version, info.Author, info.Owner, info.Copyright, info.AvailDate); return info.ID; } /// <summary>修改Module信息</summary> ///<param name="TModuleInfo info">信息类</param> public bool Edit(ModuleInfo info) { return dataProvider.Edit(info.ID, info.SiteIdx, info.ModuleName, info.Version, info.Author, info.Owner, info.Copyright, info.AvailDate) > 0; } /// <summary>编辑模块说明信息</summary> ///<param name="int ID>序号</param> ///<param name="VonKeyValueCollection Note">模块说明</param> public bool SetNote(int ID, string Note) { return dataProvider.EditNote(ID, Note) > 0; } /// <summary>编辑创建SQL信息</summary> ///<param name="int ID>序号</param> ///<param name="VonKeyValueCollection InitSQL">创建SQL</param> public bool SetInitSQL(int ID, string InitSQL) { return dataProvider.EditInitSQL(ID, InitSQL) > 0; } /// <summary>编辑删除SQL信息</summary> ///<param name="int ID>序号</param> ///<param name="VonKeyValueCollection DelSQL">删除SQL</param> public bool SetDelSQL(int ID, string DelSQL) { return dataProvider.EditDelSQL(ID, DelSQL) > 0; } /// <summary>根据PK_Module删除Module信息</summary> /// <param name="int ID>序号</param> public int Del(int ID) { return dataProvider.Del(ID); } /// <summary>根据FK_MODULE_REF_SITE删除Module信息</summary> ///<param name="int SiteIdx">网站序号</param> public int DelSite(int SiteIdx) { return dataProvider.Del(SiteIdx); } } } #endregion #region "模块信息信息操作控制类声明" namespace VonPortal.Web.Tasks { /// <summary>模块信息 控制类</summary> public class ModuleTask : ModuleCtrl { /// <summary>含数据库事务的构造函数</summary> public ModuleTask(IDbTransaction DBTrans) : base(DBTrans) { } /// <summary> /// 根据主键 PK_Module 提取信息 /// </summary> /// <param name="ID">序号</param> public new Task<ModuleInfo> GetByModule(int ID) { return Task.Run(() => { return base.GetByModule(ID); }); } /// <summary>得到模块说明信息</summary> ///<param name="ID">序号</param> ///<param name="Note">模块说明</param> public new Task<string> GetNote(int ID) { return Task.Run(() => { return base.GetNote(ID); }); } /// <summary>编辑模块说明信息</summary> ///<param name="ID">序号</param> ///<param name="Note">模块说明</param> public new Task<bool> SetNote(int ID, string Note) { return Task.Run(() => { return base.SetNote(ID, Note); }); } /// <summary>得到创建SQL信息</summary> ///<param name="ID">序号</param> ///<param name="InitSQL">创建SQL</param> public new Task<string> GetInitSQL(int ID) { return Task.Run(() => { return base.GetInitSQL(ID); }); } /// <summary>编辑创建SQL信息</summary> ///<param name="ID">序号</param> ///<param name="InitSQL">创建SQL</param> public new Task<bool> SetInitSQL(int ID, string InitSQL) { return Task.Run(() => { return base.SetInitSQL(ID, InitSQL); }); } /// <summary>得到删除SQL信息</summary> ///<param name="ID">序号</param> ///<param name="DelSQL">删除SQL</param> public new Task<string> GetDelSQL(int ID) { return Task.Run(() => { return base.GetDelSQL(ID); }); } /// <summary>编辑删除SQL信息</summary> ///<param name="ID">序号</param> ///<param name="DelSQL">删除SQL</param> public new Task<bool> SetDelSQL(int ID, string DelSQL) { return Task.Run(() => { return base.SetDelSQL(ID, DelSQL); }); } /// <summary>根据外键 FK_MODULE_REF_SITE 提取信息</summary> public new Task<List<ModuleInfo>> ListByMODULE_REF_SITE(int SiteIdx, bool IncludePortal) { return Task.Run(() => { return base.ListByMODULE_REF_SITE(SiteIdx, IncludePortal); }); } /// <summary>保存Module信息</summary> ///<param name="info">信息类</param> public new Task<bool> Save(ModuleInfo info) { return Task.Run(() => { return base.Save(info); }); } /// <summary>添加Module信息</summary> ///<param name="info">信息类</param> public new Task<int> Add(ModuleInfo info) { return Task.Run(() => { return base.Add(info); }); } /// <summary>修改Module信息</summary> ///<param name="info">信息类</param> public new Task<bool> Edit(ModuleInfo info) { return Task.Run(() => { return base.Edit(info); }); } /// <summary>根据PK_Module删除Module信息</summary> /// <param name="ID">序号</param> public new Task<int> Del(int ID) { return Task.Run(() => { return base.Del(ID); }); } /// <summary>根据FK_MODULE_REF_SITE删除Module信息</summary> ///<param name="SiteIdx">网站序号</param> public new Task<int> DelSite(int SiteIdx) { return Task.Run(() => { return base.Del(SiteIdx); }); } } } #endregion #region "模块信息信息数据库访问基类声明" namespace VonPortal.Web.Data { /// <summary> /// 数据及操作控制层 /// <seealso cref="VonPortal.Web.Business.ModuleInfo"/> /// <seealso cref="VonPortal.Web.Business.ModuleCtrl"/> /// </summary> public abstract class ModuleDataProvider : DataProvider { #region Shared/Static Methods // singleton reference to the instantiated object private static ModuleDataProvider objProvider = null; // constructor static ModuleDataProvider() { objProvider = CreateProvider(); } // dynamically create provider public static ModuleDataProvider CreateProvider() { return (ModuleDataProvider)VonPortal.Web.Reflection.CreateDataProvider("ptl", "VonPortal", "VonPortal.Web.Data.ModuleDataProvider"); } /// <summary> /// The instance of ModuleDataProvider with databse transaction. /// </summary> /// <param name="DBTransaction">数据库事物变量,如果为空则表明是事务性调用,则使用静态对象</param> /// <returns>return the provider</returns> public static ModuleDataProvider Instance() { if (objProvider == null) objProvider = CreateProvider(); return objProvider; } #endregion #region "TModule Abstract Methods" /// <summary>根据主键 PK_Module 提取信息</summary> public abstract IDataReader GetByModule(int ID); /// <summary>编辑模块说明信息</summary> ///<param name="int ID>序号</param> public abstract string GetNote(int ID); /// <summary>编辑创建SQL信息</summary> ///<param name="int ID>序号</param> public abstract string GetInitSQL(int ID); /// <summary>编辑删除SQL信息</summary> ///<param name="int ID>序号</param> public abstract string GetDelSQL(int ID); /// <summary>根据外键 FK_MODULE_REF_SITE 提取信息</summary> public abstract IDataReader ListByMODULE_REF_SITE(int SiteIdx, bool IncludePortal); /// <summary>保存Module信息</summary> public abstract int Save(int ID, int SiteIdx, string ModuleName, string Version, string Author, string Owner, string Copyright, DateTime AvailDate); /// <summary>添加Module信息</summary> public abstract int Add(int SiteIdx, string ModuleName, string Version, string Author, string Owner, string Copyright, DateTime AvailDate); /// <summary>修改Module信息</summary> public abstract int Edit(int ID, int SiteIdx, string ModuleName, string Version, string Author, string Owner, string Copyright, DateTime AvailDate); /// <summary>编辑模块说明信息</summary> public abstract int EditNote(int ID, string Note); /// <summary>编辑创建SQL信息</summary> public abstract int EditInitSQL(int ID, string InitSQL); /// <summary>编辑删除SQL信息</summary> public abstract int EditDelSQL(int ID, string DelSQL); /// <summary>根据PK_Module删除Module信息</summary> public abstract int Del(int ID); /// <summary>根据FK_MODULE_REF_SITE删除Module信息</summary> public abstract int DelSite(int SiteIdx); #endregion } } #endregionnamespace VonPortal.Web.Models.ModuleInfo 数据表对应的结构信息
namespace VonPortal.Web.Operators.ModuleCtrl 表结构的对应的操作及控制,包含查询、添加等功能
namespace VonPortal.Web.tasks.ModuleTask 表结构的对应的异步操作类功能
namespace VonPortal.Web.Data.ModuleDataProvider 表结构的数据库访问接口,具体实现大家可能根据自己的数据库来具体实现。
下面是模块文件表结构信息类和模块功能注册信息类结构,这里只给出代码就不在详述了。
//模块文件(PTL_ModuleFile) #region "模块文件信息类声明" namespace VonPortal.Web.Models { /// <summary>模块文件 信息类</summary> public class ModuleFileInfo { #region "Constructors" /// <summary> /// 构造函数 /// </summary> public ModuleFileInfo() { } /// <summary> /// 含初始化构造函数 /// </summary> /// <param name="ID">序号</param> /// <param name="ModuleIdx">模块序号</param> /// <param name="Filename">文件名称</param> /// <param name="FileExt">文件类型</param> /// <param name="FilePath">存放位置</param> public ModuleFileInfo(int ID, int ModuleIdx, string Filename, string FileExt, string FilePath) { this.ID = ID; this.ModuleIdx = ModuleIdx; this.Filename = Filename; this.FileExt = FileExt; this.FilePath = FilePath; } #endregion #region "Public Properties" /// <summary>序号</summary> [Required] [Display(Name = "序号")] public int ID { get; set; } /// <summary>模块序号</summary> [Required] [Display(Name = "模块序号")] public int ModuleIdx { get; set; } /// <summary>文件名称</summary> [Display(Name = "文件名称")] public string Filename { get; set; } /// <summary>文件类型</summary> [Display(Name = "文件类型")] public string FileExt { get; set; } /// <summary>存放位置</summary> [Display(Name = "存放位置")] public string FilePath { get; set; } #endregion } } #endregion #region "模块文件信息基础控制类声明" namespace VonPortal.Web.Operators { /// <summary>模块文件 控制类</summary> public class ModuleFileCtrl { private ModuleFileDataProvider dataProvider = null; /// <summary>启动数据库事务</summary> public IDbTransaction BeginTrans() { dataProvider = ModuleFileDataProvider.CreateProvider(); return dataProvider.DBBeginTrans(); } /// <summary>含数据库事务的构造函数</summary> public ModuleFileCtrl(IDbTransaction DBTrans) { if (DBTrans == null) dataProvider = ModuleFileDataProvider.Instance(); else { dataProvider = ModuleFileDataProvider.CreateProvider(); dataProvider.DBTrans = DBTrans; } } //Read data and write to ModuleFileInfo class private void setInfoValue(IDataReader reader, ModuleFileInfo info) { info.ID = reader.GetInt32(0); //序号 info.ModuleIdx = reader.GetInt32(1); //模块序号 info.Filename = reader.GetString(2); //文件名称 info.FileExt = reader.GetString(3); //文件类型 info.FilePath = reader.GetString(4); //存放位置 } /// <summary>检验ModuleFile信息</summary> public string Check(ModuleFileInfo info) { string errInfo = ""; return errInfo; } /// <summary> /// 根据主键 PK_ModuleFile 提取信息 /// </summary> /// <param name="ID">序号</param> public ModuleFileInfo GetByModuleFile(int ID) { IDataReader reader = dataProvider.GetByModuleFile(ID); if (!reader.Read()) { reader.Close(); return null; } ModuleFileInfo info = new ModuleFileInfo(); setInfoValue(reader, info); reader.Close(); return info; } /// <summary>根据主键 IDX_ModuleFile 提取信息</summary> /// <param name="ModuleIdx">模块序号</param> public List<ModuleFileInfo> ListByModuleFile(int ModuleIdx) { List<ModuleFileInfo> list = new List<ModuleFileInfo>(); IDataReader reader = dataProvider.ListByModuleFile(ModuleIdx); while (reader.Read()) { ModuleFileInfo info = new ModuleFileInfo(); setInfoValue(reader, info); list.Add(info); } reader.Close(); return list; } /// <summary>保存ModuleFile信息</summary> ///<param name="info">信息类</param> public bool Save(ModuleFileInfo info) { info.ID = dataProvider.Save(info.ID, info.ModuleIdx, info.Filename, info.FileExt, info.FilePath); return info.ID > 0; } /// <summary>添加ModuleFile信息</summary> ///<param name="info">信息类</param> public int Add(ModuleFileInfo info) { info.ID = dataProvider.Add(info.ModuleIdx, info.Filename, info.FileExt, info.FilePath); return info.ID; } /// <summary>修改ModuleFile信息</summary> ///<param name="info">信息类</param> public bool Edit(ModuleFileInfo info) { return dataProvider.Edit(info.ID, info.ModuleIdx, info.Filename, info.FileExt, info.FilePath) > 0; } /// <summary>根据PK_ModuleFile删除ModuleFile信息</summary> /// <param name="ID">序号</param> public int Del(int ID) { return dataProvider.Del(ID); } /// <summary>根据FK_FILE_REF_MODULE删除ModuleFile信息</summary> ///<param name="ModuleIdx">模块序号</param> public int DelModule(int ModuleIdx) { return dataProvider.Del(ModuleIdx); } } } #endregion #region "模块文件信息操作控制类声明" namespace VonPortal.Web.Tasks { /// <summary>模块文件 控制类</summary> public class ModuleFileTask : ModuleFileCtrl { /// <summary>含数据库事务的构造函数</summary> public ModuleFileTask(IDbTransaction DBTrans) : base(DBTrans) { } /// <summary> /// 根据主键 PK_ModuleFile 提取信息 /// </summary> /// <param name="ID">序号</param> public new Task<ModuleFileInfo> GetByModuleFile(int ID) { return Task.Run(() => { return base.GetByModuleFile(ID); }); } /// <summary>根据主键 IDX_ModuleFile 提取信息</summary> /// <param name="ModuleIdx">模块序号</param> public new Task<List<ModuleFileInfo>> ListByModuleFile(int ModuleIdx) { return Task.Run(() => { return base.ListByModuleFile(ModuleIdx); }); } /// <summary>保存ModuleFile信息</summary> ///<param name="info">信息类</param> public new Task<bool> Save(ModuleFileInfo info) { return Task.Run(() => { return base.Save(info); }); } /// <summary>添加ModuleFile信息</summary> ///<param name="info">信息类</param> public new Task<int> Add(ModuleFileInfo info) { return Task.Run(() => { return base.Add(info); }); } /// <summary>修改ModuleFile信息</summary> ///<param name="info">信息类</param> public new Task<bool> Edit(ModuleFileInfo info) { return Task.Run(() => { return base.Edit(info); }); } /// <summary>根据PK_ModuleFile删除ModuleFile信息</summary> /// <param name="ID">序号</param> public new Task<int> Del(int ID) { return Task.Run(() => { return base.Del(ID); }); } /// <summary>根据FK_FILE_REF_MODULE删除ModuleFile信息</summary> ///<param name="ModuleIdx">模块序号</param> public new Task<int> DelModule(int ModuleIdx) { return Task.Run(() => { return base.Del(ModuleIdx); }); } } } #endregion #region "模块文件信息数据库访问基类声明" namespace VonPortal.Web.Data { /// <summary> /// 数据及操作控制层 /// <seealso cref="VonPortal.Web.Business.ModuleFileInfo"/> /// <seealso cref="VonPortal.Web.Business.ModuleFileCtrl"/> /// </summary> public abstract class ModuleFileDataProvider : DataProvider { #region Shared/Static Methods // singleton reference to the instantiated object private static ModuleFileDataProvider objProvider = null; /// <summary> /// constructor /// </summary> static ModuleFileDataProvider() { objProvider = CreateProvider(); } /// <summary> /// dynamically create provider /// </summary> /// <returns>return the provider</returns> public static ModuleFileDataProvider CreateProvider() { return (ModuleFileDataProvider)VonPortal.Web.Reflection.CreateDataProvider("ptl", "VonPortal", "VonPortal.Web.Data.ModuleFileDataProvider"); } /// <summary> /// The instance of ModuleFileDataProvider. /// </summary> /// <returns>return the provider</returns> public static ModuleFileDataProvider Instance() { if (objProvider == null) objProvider = CreateProvider(); return objProvider; } #endregion #region "ModuleFile Abstract Methods" /// <summary>根据主键 PK_ModuleFile 提取信息</summary> public abstract IDataReader GetByModuleFile(int ID); /// <summary>根据主键 IDX_ModuleFile 提取信息</summary> public abstract IDataReader ListByModuleFile(int ModuleIdx); /// <summary>保存ModuleFile信息</summary> public abstract int Save(int ID, int ModuleIdx, string Filename, string FileExt, string FilePath); /// <summary>添加ModuleFile信息</summary> public abstract int Add(int ModuleIdx, string Filename, string FileExt, string FilePath); /// <summary>修改ModuleFile信息</summary> public abstract int Edit(int ID, int ModuleIdx, string Filename, string FileExt, string FilePath); /// <summary>根据PK_ModuleFile删除ModuleFile信息</summary> public abstract int Del(int ID); /// <summary>根据FK_FILE_REF_MODULE删除ModuleFile信息</summary> public abstract int DelModule(int ModuleIdx); #endregion } } #endregion //模块功能(PTL_Action) #region "模块功能信息类声明" namespace VonPortal.Web.Models { /// <summary>模块功能 信息类</summary> public class ActionInfo { #region "Constructors" /// <summary> /// 构造函数 /// </summary> public ActionInfo() { } /// <summary> /// 含初始化构造函数 /// </summary> /// <param name="ActionName">功能名称</param> /// <param name="ModuleIdx">所属模块</param> /// <param name="Kind">类型</param> public ActionInfo(string ActionName, int ModuleIdx, int Kind) { this.ActionName = ActionName; this.ModuleIdx = ModuleIdx; this.Kind = Kind; } #endregion #region "Public Properties" /// <summary>功能名称</summary> [Required] [Display(Name = "功能名称")] public string ActionName { get; set; } /// <summary>所属模块</summary> [Required] [Display(Name = "所属模块")] public int ModuleIdx { get; set; } /// <summary>类型</summary> [Display(Name = "类型")] public int Kind { get; set; } #endregion } } #endregion #region "模块功能信息基础控制类声明" namespace VonPortal.Web.Operators { /// <summary>模块功能 控制类</summary> public class ActionCtrl { private ActionDataProvider dataProvider = null; /// <summary>启动数据库事务</summary> public IDbTransaction BeginTrans() { dataProvider = ActionDataProvider.CreateProvider(); return dataProvider.DBBeginTrans(); } /// <summary>含数据库事务的构造函数</summary> public ActionCtrl(IDbTransaction DBTrans) { if (DBTrans == null) dataProvider = ActionDataProvider.Instance(); else { dataProvider = ActionDataProvider.CreateProvider(); dataProvider.DBTrans = DBTrans; } } //Read data and write to ActionInfo class private void setInfoValue(IDataReader reader, ActionInfo info) { info.ActionName = reader.GetString(0); //功能名称 info.ModuleIdx = reader.GetInt32(1); //所属模块 info.Kind = reader.GetInt32(2); //类型 } /// <summary>检验Action信息</summary> public string Check(ActionInfo info) { string errInfo = ""; if (info.ActionName == "") errInfo += " 功能名称内容不符合系统要求,不能存储。"; return errInfo; } /// <summary> /// 根据主键 PK_Action 提取信息 /// </summary> /// <param name="ActionName">功能名称</param> public ActionInfo GetByAction(string ActionName) { IDataReader reader = dataProvider.GetByAction(ActionName); if (!reader.Read()) { reader.Close(); return null; } ActionInfo info = new ActionInfo(); setInfoValue(reader, info); reader.Close(); return info; } /// <summary>得到功能简介信息</summary> ///<param name="ID">序号</param> ///<param name="Description">功能简介</param> public string GetDescription(string ActionName) { return dataProvider.GetDescription(ActionName); } /// <summary>编辑功能简介信息</summary> ///<param name="ID">序号</param> ///<param name="Description">功能简介</param> public bool SetDescription(string ActionName, string Description) { return dataProvider.SetDescription(ActionName, Description) > 0; } /// <summary>根据外键 FK_ACTION_REF_MODULE 提取信息</summary> public List<ActionInfo> ListByACTION_REF_MODULE(int ModuleIdx) { List<ActionInfo> list = new List<ActionInfo>(); IDataReader reader = dataProvider.ListByACTION_REF_MODULE(ModuleIdx); while (reader.Read()) { ActionInfo info = new ActionInfo(); setInfoValue(reader, info); list.Add(info); } reader.Close(); return list; } /// <summary>保存Action信息</summary> ///<param name="info">信息类</param> public void Save(ActionInfo info) { dataProvider.Save(info.ActionName, info.ModuleIdx, info.Kind); } /// <summary>添加Action信息</summary> ///<param name="info">信息类</param> public void Add(ActionInfo info) { dataProvider.Add(info.ActionName, info.ModuleIdx, info.Kind); } /// <summary>修改Action信息</summary> ///<param name="info">信息类</param> public void Edit(ActionInfo info) { dataProvider.Edit(info.ActionName, info.ModuleIdx, info.Kind); } /// <summary>根据PK_Action删除Action信息</summary> /// <param name="ActionName">功能名称</param> public void Del(string ActionName) { dataProvider.Del(ActionName); } /// <summary>根据FK_ACTION_REF_MODULE删除Action信息</summary> ///<param name="ModuleIdx">所属模块</param> public void DelModule(int ModuleIdx) { dataProvider.DelModule(ModuleIdx); } } } #endregion #region "模块功能信息操作控制类声明" namespace VonPortal.Web.Tasks { /// <summary>模块功能 控制类</summary> public class ActionTask : ActionCtrl { /// <summary>含数据库事务的构造函数</summary> public ActionTask(IDbTransaction DBTrans) : base(DBTrans) { } /// <summary> /// 根据主键 PK_Action 提取信息 /// </summary> /// <param name="ActionName">功能名称</param> public new Task<ActionInfo> GetByAction(string ActionName) { return Task.Run(() => { return base.GetByAction(ActionName); }); } /// <summary>得到功能简介信息</summary> ///<param name="ID">序号</param> ///<param name="Description">功能简介</param> public new Task<string> GetDescription(string ActionName) { return Task.Run(() => { return base.GetDescription(ActionName); }); } /// <summary>编辑功能简介信息</summary> ///<param name="ID">序号</param> ///<param name="Description">功能简介</param> public new Task<bool> SetDescription(string ActionName, string Description) { return Task.Run(() => { return base.SetDescription(ActionName, Description); }); } /// <summary>根据外键 FK_ACTION_REF_MODULE 提取信息</summary> public new Task<List<ActionInfo>> ListByACTION_REF_MODULE(int ModuleIdx) { return Task.Run(() => { return base.ListByACTION_REF_MODULE(ModuleIdx); }); } /// <summary>保存Action信息</summary> ///<param name="info">信息类</param> public new Task Save(ActionInfo info) { return Task.Run(() => { base.Save(info); }); } /// <summary>添加Action信息</summary> ///<param name="info">信息类</param> public new Task Add(ActionInfo info) { return Task.Run(() => { base.Add(info); }); } /// <summary>修改Action信息</summary> ///<param name="info">信息类</param> public new Task Edit(ActionInfo info) { return Task.Run(() => { base.Edit(info); }); } /// <summary>根据PK_Action删除Action信息</summary> /// <param name="ActionName">功能名称</param> public new Task Del(string ActionName) { return Task.Run(() => { base.Del(ActionName); }); } /// <summary>根据FK_ACTION_REF_MODULE删除Action信息</summary> ///<param name="ModuleIdx">所属模块</param> public new Task DelModule(int ModuleIdx) { return Task.Run(() => { base.DelModule(ModuleIdx); }); } } } #endregion #region "模块功能信息数据库访问基类声明" namespace VonPortal.Web.Data { /// <summary> /// 数据及操作控制层 /// <seealso cref="VonPortal.Web.Business.ActionInfo"/> /// <seealso cref="VonPortal.Web.Business.ActionCtrl"/> /// </summary> public abstract class ActionDataProvider : DataProvider { #region Shared/Static Methods // singleton reference to the instantiated object private static ActionDataProvider objProvider = null; /// <summary> /// constructor /// </summary> static ActionDataProvider() { objProvider = CreateProvider(); } /// <summary> /// dynamically create provider /// </summary> /// <returns>return the provider</returns> public static ActionDataProvider CreateProvider() { return (ActionDataProvider)VonPortal.Web.Reflection.CreateDataProvider("ptl", "VonPortal", "VonPortal.Web.Data.ActionDataProvider"); } /// <summary> /// The instance of ActionDataProvider. /// </summary> /// <returns>return the provider</returns> public static ActionDataProvider Instance() { if (objProvider == null) objProvider = CreateProvider(); return objProvider; } #endregion #region "Action Abstract Methods" /// <summary>根据主键 PK_Action 提取信息</summary> public abstract IDataReader GetByAction(string ActionName); /// <summary>编辑功能简介信息</summary> ///<param name="int ID>序号</param> public abstract string GetDescription(string ActionName); /// <summary>编辑功能简介信息</summary> public abstract int SetDescription(string ActionName, string Description); /// <summary>根据外键 FK_ACTION_REF_MODULE 提取信息</summary> public abstract IDataReader ListByACTION_REF_MODULE(int ModuleIdx); /// <summary>保存Action信息</summary> public abstract void Save(string ActionName, int ModuleIdx, int Kind); /// <summary>添加Action信息</summary> public abstract void Add(string ActionName, int ModuleIdx, int Kind); /// <summary>修改Action信息</summary> public abstract void Edit(string ActionName, int ModuleIdx, int Kind); /// <summary>根据PK_Action删除Action信息</summary> public abstract void Del(string ActionName); /// <summary>根据FK_ACTION_REF_MODULE删除Action信息</summary> public abstract void DelModule(int ModuleIdx); #endregion } } #endregion
下面我们将一步一步实现模块中文件列表的实现,文件上传功能的实现,文件删除功能的实现做出讲解,然后我们再对功能注册信息部分进行讲解。