亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

從零開始編寫自己的C#框架(16)——Web層后端父類

2019-11-17 01:35:06
字體:
來源:轉載
供稿:網友

從零開始編寫自己的C#框架(16)——Web層后端父類

  本章節講述的各個類是后端系統的核心之一,涉及到系統安全驗證、操作日志記錄、頁面與按鍵權限控制、后端頁面功能封裝等內容,希望學習本系列的朋友認真查看新增的類與函數,這對以后使用本框架進行開發時非常重要。

  1、父類(基類)的實現

  在開發后端首頁與相關功能頁面前,我們首先要實現的是所有頁面的基類(父類),將常用的功能都預先實現出來,而后面的相關UI類則直接繼承它,這樣就能簡單的自動實現了相關頁面功能,不用再每個頁面去編寫某些按鍵功能或其他一些功能,如果有特殊的需要,再重寫對應的功能類就可以了,對于常用功能,由于之前的邏輯層與數據層已使用模板生成好了,所以直接調用,這樣的話比如實現一個列表頁面的一些功能(如下圖),只需要簡單的在頁面控件使用指定名稱,那么一些實現代碼就不用再編寫了,這些控件自動擁有對應的功能,比如刷新、自動排序、保存排序(直接修改下圖中排序列的輸入框后點擊保存排序就可以了,這個功能不用編寫任何一個代碼,只需要將按鍵放到下圖位置,然后使用指定名稱就可以了)等功能。這樣操作將使我們后面的開發工作更加輕松。而對于列表的話,也只需要調用邏輯層函數直接綁定(bll.BindGrid(this, Grid1, Grid1.PageIndex + 1, Grid1.PageSize, InquiryCondition(), _order);)就可以實現列表、分頁、翻頁、排序等功能。當然列表點擊審核的√與×就會同步更改數據庫對應記錄的字段與圖標,也只需要在列表控件對應函數復制進簡單的幾行代碼就可以實現,這些會在后面相應章節中具體講述。

  

  先上父類與接口代碼

  1 using System;  2 using System.Collections.Generic;  3 using System.Web.UI;  4 using DotNet.Utilities;  5 using FineUI;  6 using Solution.Logic.Managers;  7 using Solution.Logic.Managers.application;  8   9 namespace Solution.Web.Managers.WebManage.Application 10 { 11     /// <summary> 12     /// Web層頁面父類 13     /// 本基類封裝了各種常用函數,c減少重復代碼的編寫 14     /// </summary> 15     public abstract class PageBase : System.Web.UI.Page, ipageBase 16     { 17         #region 定義對象 18         //邏輯層接口對象 19         PRotected ILogicBase bll = null; 20         //定義列表對象 21         private FineUI.Grid grid = null; 22         //頁面排序容器 23         List<string> sortList = null; 24         #endregion 25  26         #region 初始化函數 27         protected override void OnInit(EventArgs e) 28         { 29             base.OnInit(e); 30              31             //檢測用戶是否超時退出 32             OnlineUsersBll.GetInstence().IsTimeOut(); 33  34             if (!IsPostBack) 35             { 36                 //檢測當前頁面是否有訪問權限 37                 MenuInfoBll.GetInstence().CheckPagePower(this); 38  39                 #region 設置頁面按鍵權限 40                 //定義按鍵控件 41                 Control btnControl = null; 42                 try 43                 { 44                     //找到頁面放置按鍵控件的位置 45                     ControlCollection controls = MenuInfoBll.GetInstence().GetToolBarControls(this.Controls); 46                     //逐個讀取出來 47                     for (int i = 0; i < controls.Count; i++) 48                     { 49                         //取出控件 50                         btnControl = controls[i]; 51                         //判斷是否除了刷新、查詢和關閉以外的按鍵 52                         if (btnControl.ID != "ButtonRefresh" && btnControl.ID != "ButtonSearch" && btnControl.ID != "ButtonClose" && btnControl.ID != "btnReset") 53                         { 54                             //是的話檢查該按鍵當前用戶是否有控件權限,沒有的話則禁用該按鍵 55                             ((FineUI.Button)btnControl).Enabled = MenuInfoBll.GetInstence().CheckControlPower(this, btnControl.ID); 56                         } 57                     } 58                 } 59                 catch (Exception) { } 60                 #endregion 61  62                 //記錄用戶當前所在的頁面位置 63                 CommonBll.UserRecord(this); 64             } 65  66             //運行UI頁面初始化函數,子類繼承后需要重寫本函數,以提供給本初始化函數調用 67             Init(); 68         } 69         #endregion 70  71         #region 接口函數,用于UI頁面初始化,給邏輯層對象、列表等對象賦值 72  73         /// <summary> 74         /// 接口函數,用于UI頁面初始化,給邏輯層對象、列表等對象賦值 75         /// </summary> 76         public abstract void Init(); 77  78         #endregion 79  80         #region 頁面各種按鍵事件 81  82         /// <summary> 83         /// 刷新按鈕事件 84         /// </summary> 85         /// <param name="sender"></param> 86         /// <param name="e"></param> 87         protected void ButtonRefresh_Click(object sender, EventArgs e) 88         { 89             FineUI.PageContext.RegisterStartupScript("window.location.reload()"); 90         } 91  92         /// <summary> 93         /// 關閉 94         /// </summary> 95         /// <param name="sender"></param> 96         /// <param name="e"></param> 97         protected void ButtonClose_Click(object sender, EventArgs e) 98         { 99             PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());100 101         }102         /// <summary>103         /// 查詢104         /// </summary>105         /// <param name="sender"></param>106         /// <param name="e"></param>107         protected void ButtonSearch_Click(object sender, EventArgs e)108         {109             LoadData();110         }111 112         /// <summary>113         /// 新增114         /// </summary>115         /// <param name="sender"></param>116         /// <param name="e"></param>117         protected void ButtonAdd_Click(object sender, EventArgs e)118         {119             Add();120         }121 122         /// <summary>123         /// 編輯124         /// </summary>125         /// <param name="sender"></param>126         /// <param name="e"></param>127         protected void ButtonEdit_Click(object sender, EventArgs e)128         {129             Edit();130         }131 132         /// <summary>133         /// 刪除134         /// </summary>135         /// <param name="sender"></param>136         /// <param name="e"></param>137         protected void ButtonDelete_Click(object sender, EventArgs e)138         {139             //執行刪除操作,返回刪除結果140             string result = Delete();141 142             if (string.IsNullOrEmpty(result))143                 return;144             //彈出提示框145             FineUI.Alert.ShowInParent(result, FineUI.MessageBoxIcon.Information);146 147             //重新加載頁面表格148             LoadData();149         }150 151 152         /// <summary>153         /// 保存數據154         /// </summary>155         /// <param name="sender"></param>156         /// <param name="e"></param>157         protected void ButtonSave_Click(object sender, EventArgs e)158         {159             //執行保存操作,返回保存結果160             string result = Save();161 162             if (string.IsNullOrEmpty(result))163             {164                 PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());165                 FineUI.Alert.ShowInParent("保存成功", FineUI.MessageBoxIcon.Information);166             }167             else168             {169                 //by july,部分頁面保存后,必須刷新原頁面的,把返回的值用 "{url}" + 跳轉地址的方式傳過來170                 if (StringHelper.Left(result, 5) == "{url}")171                 {172                     string url = result.Trim().Substring(6);173                     FineUI.Alert.ShowInParent("保存成功", "", FineUI.MessageBoxIcon.Information, "self.location='" + url + "'");174                 }175                 else176                 {177                     FineUI.Alert.ShowInParent(result, FineUI.MessageBoxIcon.Information);178                 }179             }180         }181 182         /// <summary>保存排序</summary>183         /// <param name="sender"></param>184         /// <param name="e"></param>185         protected void ButtonSaveSort_Click(object sender, EventArgs e)186         {187             SaveSort();188         }189 190         /// <summary>自動排序</summary>191         /// <param name="sender"></param>192         /// <param name="e"></param>193         protected void ButtonSaveAutoSort_Click(object sender, EventArgs e)194         {195             //默認使用多級分類196             SaveAutoSort();197         }198 199         /// &
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品免费观看| 久久久国产精彩视频美女艺术照福利| 亚洲女同性videos| 91在线看www| 久久国产天堂福利天堂| 亚洲人成网站999久久久综合| 欧美日韩亚洲一区二区三区| 欧美大片va欧美在线播放| 亚洲欧美日韩中文在线| 亚洲图片在区色| 亚洲欧美一区二区三区情侣bbw| 亚洲成人免费网站| 精品久久久久久中文字幕一区奶水| 亚洲人成在线免费观看| 色综合久久天天综线观看| 国外成人在线视频| 国产精品欧美激情| 日韩av第一页| 国产午夜一区二区| 91免费在线视频| 亚洲最大福利视频| 日韩av在线免播放器| 日本久久久久久| 欧美综合在线观看| 久久综合伊人77777尤物| 日韩激情av在线免费观看| 成人福利视频网| 77777少妇光屁股久久一区| 色偷偷噜噜噜亚洲男人| 亚洲视频自拍偷拍| 国产精品露脸av在线| 日韩中文字幕在线看| 国产一区av在线| 欧美激情区在线播放| 日韩电影免费观看在线| 国产成人亚洲综合青青| 日韩精品视频中文在线观看| 欧美性猛交xxxx久久久| 国产日本欧美一区二区三区| 最近2019中文字幕一页二页| 伊人久久大香线蕉av一区二区| 国产精品一区二区3区| 午夜精品久久久久久99热| 欧美美女15p| 午夜精品久久久久久久久久久久久| 国产综合久久久久| 毛片精品免费在线观看| 亚洲图片欧美日产| 国产精品老女人视频| 成人国产精品一区二区| 成人精品福利视频| 国产精品久久综合av爱欲tv| 亚洲午夜国产成人av电影男同| 成人天堂噜噜噜| 欧美成人在线影院| 色爱av美腿丝袜综合粉嫩av| 久久成人这里只有精品| 欧美丝袜一区二区| 亚洲无线码在线一区观看| 日韩中文字幕网址| 久久伊人91精品综合网站| 亚洲大胆人体av| 欧美成人h版在线观看| 国产精品视频中文字幕91| 久久精品视频网站| 日韩高清av在线| 色www亚洲国产张柏芝| 欧美亚洲在线播放| 国产又爽又黄的激情精品视频| 伊人久久精品视频| 精品视频中文字幕| 精品夜色国产国偷在线| 色噜噜久久综合伊人一本| 久久久女人电视剧免费播放下载| 国产一区二区色| 91社影院在线观看| 亚洲第一级黄色片| 欧美一级大片在线免费观看| 久久青草精品视频免费观看| 久久av在线看| 久久精品久久久久电影| 国产精品欧美日韩久久| 国产手机视频精品| 国产精品永久免费观看| 欧美精品福利在线| 一区二区av在线| 欧美日韩国产精品一区二区不卡中文| 国产精品高潮粉嫩av| 国产三级精品网站| 精品无人国产偷自产在线| 中文字幕免费精品一区| 欧美高清性猛交| 欧美精品久久久久久久| 久久精品视频一| 国产成人一区三区| 亚洲欧美日韩综合| 欧美另类极品videosbestfree| 午夜精品久久久久久久99热浪潮| 按摩亚洲人久久| 久久久久久网址| 久久99国产精品自在自在app| 亚洲综合日韩在线| 91精品国产91久久久久福利| 亚洲a成v人在线观看| 亚洲午夜国产成人av电影男同| 欧美激情精品久久久久| 日本一区二区三区四区视频| 激情亚洲一区二区三区四区| 欧美成人在线网站| 亚洲一区二区三区777| 91久久精品国产91久久性色| 欧美丰满少妇xxxxx做受| 欧美丰满老妇厨房牲生活| 久久久91精品国产一区不卡| 国产精自产拍久久久久久| 美女国内精品自产拍在线播放| 欧美高跟鞋交xxxxxhd| 亚洲国产精品国自产拍av秋霞| 欧美成年人网站| 日韩免费黄色av| 国产精品美乳一区二区免费| 日韩视频免费大全中文字幕| 国产三级精品网站| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲精品欧美日韩专区| 一区二区av在线| 韩曰欧美视频免费观看| 国产亚洲欧洲在线| 午夜精品福利视频| 精品一区精品二区| 欧美精品在线免费播放| 欧美另类69精品久久久久9999| 欧美激情在线狂野欧美精品| 国语自产精品视频在线看一大j8| 日韩av在线网页| 国产精品成熟老女人| 日韩电影免费在线观看中文字幕| 久久91亚洲人成电影网站| 欧美另类交人妖| 日韩麻豆第一页| 在线观看国产精品日韩av| 成人精品久久一区二区三区| 亚洲国产私拍精品国模在线观看| 亚洲欧洲视频在线| 欧美日韩激情网| 91亚洲va在线va天堂va国| 777精品视频| 久久精品久久久久| 国产精品福利网站| 欧美成年人视频网站欧美| 亚洲国产精品小视频| 久久久久久久国产| 日韩欧美高清在线视频| 欧美成人小视频| 在线视频日本亚洲性| 亚洲精品视频在线播放| 黑人精品xxx一区| 久久久精品久久久久| 欧美日韩国产综合视频在线观看中文| 精品毛片网大全| 亚洲色图综合久久| 亚洲欧美综合另类中字| 国产精品第二页| 视频一区视频二区国产精品|