1、 從Control到GridView繼承了多少層?
【自然架構】 頁面裡的父類—— 改進和想法、解釋 看上面的類圖,遠遠超過三層了吧。如果簡單的用“書上說,繼承不能超過三層”、“組合優于繼承”來衡量的話,那麼.Net架構能得到什麼樣的結論呢?
是以我說,簡單的依靠“書上說”來作評價是很死闆的,是根本就沒有考慮具體的情況、沒有仔細的了解而随便說的。
當然我并不是說.Net架構繼承了這麼多層,我就可以多繼承幾層了,我完全沒有這個意思。用不用繼承,繼承的層數,這個要根據具體問題具體分析的,不能簡單的依據書上的話、很随意的做出結論。也不能被書上的話給框框死,就是“盡信書不如無書”吧。
2、 我為什麼要用繼承。
我們在做CRM這一類的管理程式的時候,需要做很多的清單頁面,這些頁面都共同的幾件事情要做,判斷是否登入、判斷是否有權限通路、驗證URL參數、給屬性指派等(這個是依據自然架構來說的,對于您來說也許沒有這麼多,但是總會有共同的事情吧,如果沒有那就不需要用繼承了)。很顯然這些相同的事情不能讓每個清單頁面都親自處理一遍,這個工作效率就太低了,備援代碼也很多。那麼怎麼辦呢?我想到的就是繼承。建立一個父類,把這些事情都交給父類去做,子類“坐享其成”就可以了。
3、 組合
上面說了,要把這些共同的事情交給父類去做,那麼是不是說就一定要父類親自去做呢?很顯然不是的。比如驗證是否登入,這個我就是定義了UserManage、BaseUserInfo兩個類來處理的。而在父類裡面就是通過這兩個類來實作判斷是否登入的功能的,這個是不是傳說中的“has A”呢?再弱弱的問一下,這個是不是組合呢?(這個我确實比較模糊,是“has A”比較有把握,但是算不算組合就真的不清楚了,望指教)。
如果要把共同的事情都做成類,然後組合的話,那麼看看我們要做多少?
判斷是否登入
判斷是否有權限通路
判斷URL參數,每個頁面的參數不盡相同,FunctionID是都會傳遞的,DataID是表單頁面的,DepartmentID有時候會有。
給屬性指派,不同類型的頁面,指派的方法是不一樣的。
這麼多的“選項”,并不是每一個頁面都需要,有的需要一個,有的需要幾個,那麼是不是要做出選擇呢?如果我有100個清單頁面,每一個頁面都要選擇一下嗎?這100個清單頁面的選擇都是一樣的呀,每個頁面都做一次,是不是重複了呀。是以還是需要做一個父類,讓父類去做選擇,子類還是“坐享其成”就可以了。表單頁面也是相同的情況。是以我覺得即使用了組合,那麼繼承的層數還是這些,不會有任何的影響。呵呵。
是以我才定義了三個父類:清單頁面的父類、表單頁面的父類、删除頁面的父類。如果繼承隻是這樣的話(一層),那麼我估計大家也就沒有什麼異議了吧。但是我又讓這三個父類繼承了一個父類——PageURL(判斷URL的),估計這個是大家看不慣的地方吧,因為這個用OO的思路是完全解釋不通的,他們有父子關系嗎?沒有。既然沒有,那麼為什麼要用繼承?為什麼不把判斷URL的地方做成單獨的類,然後再去調用,就像判斷是否登入的那樣?
我這麼做的目的很簡單,就是為了把相同的功能放到父類裡面去,至于有沒有父子關系,我不想過多的考慮,就像以前大家讨論“book.Save()”是否OO一樣,管他O不O呢,好用就行,不用特意去迎合在現實裡面的意義吧。既然都需要判斷URL參數,那就放在父類裡面好了。
當然,判斷URL參數的地方沒有做成單獨的類還有一個原因,那就是每一類的頁面的判斷的參數都不一樣,還有一些特殊的頁面判斷的方式也不一樣,我把判斷的函數定義成virtual的,這樣如果子類的判斷方式不一樣的話,那麼就可以通過override來重寫成自己的判斷方式,這個不知道做成單獨的類是否可以達到這樣的功能。比如說表單頁面的父類就override了驗證DataID的函數。
4、 修改。
看了大家的回複,也确實覺得有一個地方确實不适合,那就是判斷是否有權限通路頁面的功能,于是思考了一下,應該把這個功能從父類裡面移出去,移出去後放在了BaseUserInfo類裡面了。
5、修改後的類圖
【自然架構】 頁面裡的父類—— 改進和想法、解釋 這是我的想法,歡迎大家拍闆磚,呵呵。
1、PageURL
【自然架構】 頁面裡的父類—— 改進和想法、解釋 namespace Nature.UI.Base
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 {
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /**//// <summary>
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 處理URL參數
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 接收URL傳遞過來的子產品ID,大部分頁面都需要使用這個ID
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// </summary>
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public partial class PageURL : PagePermission
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 定義屬性,記錄URL參數值#region 定義屬性,記錄URL參數值
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /**//// <summary>
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// FunctionID,功能節點ID
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// </summary>
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public string FunctionID = string.Empty;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 接收URL傳遞過來的記錄ID,用于顯示、修改資料
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public string DataID;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 按鈕ID,用于是否可用按鈕的驗證
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public string ButtonID;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 部門ID。string.Empty 表示沒有傳遞參數
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public string DepartmentID = string.Empty;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// foreign key column 外鍵ID。string.Empty 表示沒有傳遞參數
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public string ForeignID = string.Empty;
【自然架構】 頁面裡的父類—— 改進和想法、解釋 #endregion
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 頁面裡的标題
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public Label Lbl_Title; //頁面裡的标題
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 初始化 在Page_Load之間執行#region 初始化 在Page_Load之間執行
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 提取URL裡面的參數,驗證參數
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// <param name="e"></param>
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected override void OnInit(EventArgs e)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 base.OnInit(e);
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //調用函數來設定FunctionID,不同類型的頁面就可以用不同的方式來設定FunctionID了。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetFunctionID();
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //調用函數來設定ButtonID。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetButtonID();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //調用函數來設定DataID。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetDataID();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //調用函數來設定DepartmentID(部門ID)。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetDepartmentID();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //調用函數來設定ForeignID(外鍵ID)。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetForeignID();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (!Page.IsPostBack)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //設定标題
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetPageTitle();
【自然架構】 頁面裡的父類—— 改進和想法、解釋 }
【自然架構】 頁面裡的父類—— 改進和想法、解釋 }
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 清除IE緩存#region 清除IE緩存
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 清除IE緩存
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected override void OnLoad(EventArgs e)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 base.OnLoad(e);
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //清除IE緩存
【自然架構】 頁面裡的父類—— 改進和想法、解釋 Response.Cache.SetNoStore();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 }
【自然架構】 頁面裡的父類—— 改進和想法、解釋 }
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 說明
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 設定标題#region 設定标題
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 設定标題
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 private void SetPageTitle()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (this.Lbl_Title != null)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 string sql = "select FunctionTitle from Manage_Function_Info where FunctionID=" + this.FunctionID;
【自然架構】 頁面裡的父類—— 改進和想法、解釋 this.Lbl_Title.Text = dal_Customer.ExecuteString(sql);
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 用抽象函數的方式設定FunctionID#region 用抽象函數的方式設定FunctionID
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 設定FunctionID。
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected virtual void SetFunctionID()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //DataList.aspx、DataForm.aspx 頁面通過URL裡的參數設定。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //其他頁面自行設定
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 this.FunctionID = Request.QueryString["fid"];
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 驗證子產品ID參數是否是數字。#region 驗證子產品ID參數是否是數字。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (!Functions.IsInt(this.FunctionID))
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 Response.Write("子產品參數不正确!");
【自然架構】 頁面裡的父類—— 改進和想法、解釋 Response.End();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 #endregion
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 用抽象函數的方式設定DataID#region 用抽象函數的方式設定DataID
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 設定DataID。
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected virtual void SetDataID()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 this.DataID = Request.QueryString["id"];
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (!Functions.IsInt(DataID))
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //沒有傳遞,設定預設值
【自然架構】 頁面裡的父類—— 改進和想法、解釋 DataID = string.Empty;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 用抽象函數的方式設定ButtonID#region 用抽象函數的方式設定ButtonID
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 設定ButtonID。
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected virtual void SetButtonID()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 this.ButtonID = Request.QueryString["bid"];
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (!Functions.IsInt(ButtonID))
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ButtonID = string.Empty;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 驗證外鍵#region 驗證外鍵
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 驗證外鍵
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 private void SetForeignID()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 this.ForeignID = Request.QueryString["frid"];
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 驗證外鍵ID參數是否是數字。#region 驗證外鍵ID參數是否是數字。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (!Functions.IsInt(ForeignID))
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ForeignID = string.Empty;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 驗證部門ID#region 驗證部門ID
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 驗證部門ID
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 private void SetDepartmentID()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 this.DepartmentID = Request.QueryString["did"];
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 驗證部門ID參數是否是數字。#region 驗證部門ID參數是否是數字。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (!Functions.IsInt(DepartmentID))
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 DepartmentID = string.Empty;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 2、BasePageList
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 清單頁面的基類
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 這個算不算模闆模式呢?
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public partial class BasePageList : PageURL
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 定義共用的控件,以便于統一控制#region 定義共用的控件,以便于統一控制
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 分頁用的控件
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public QuickPager ctl_CommonPager;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 顯示資料用的控件
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public MyGrid ctl_CommonGrid;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 查詢控件
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public MyFind ctl_CommonFind;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 查詢按鈕
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public Button btn_Search;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 按鈕組,功能(操作)按鈕
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public OperationButtonBar ctl_CommonButtonBar;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 在 OnInit 事件裡面設定各個自定義控件的屬性和關聯#region 在 OnInit 事件裡面設定各個自定義控件的屬性和關聯
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 在 OnInit 事件裡面設定各個自定義控件的屬性和關聯
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //父類裡面驗證參數是否正确
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //驗證是否有權限通路。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 MyUser.CheckFunctionID(this.FunctionID);
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //設定分頁控件的屬性和事件
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetQuickPagerInfo();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //設定資料表格的屬性
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetGridInfo();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //設定查詢控件的屬性
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetFindControlInfo();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //設定操作按鈕的屬性
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetButtonBarInfo();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 清單的基類。給共用控件設定屬性和事件。
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 設定分頁控件的屬性#region 設定分頁控件的屬性
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 從中繼資料裡提取資訊,設定分頁控件的屬性
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public virtual void SetQuickPagerInfo()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (ctl_CommonPager != null)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonPager.DAL = dal_Customer; //設定客戶的資料通路函數庫
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonPager.PagerSQL.Page = this; //設定Page,用于儲存屬性的狀态
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (ctl_CommonGrid != null)
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonPager.ShowDataControl = ctl_CommonGrid; //綁定資料顯示控件
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonPager.FunctionID = this.FunctionID; //設定子產品标志,即功能節點的ID
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonPager.SetPagerInfo(dal_Metadata); //從配置資訊裡面提取資料
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //擷取配置資訊裡面的“固定查詢條件”
【自然架構】 頁面裡的父類—— 改進和想法、解釋 string tableQueryAlways = ctl_CommonPager.PagerSQL.TableQueryAlways;
【自然架構】 頁面裡的父類—— 改進和想法、解釋 string tmpQuery = "";
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 判斷是否傳入id,如果傳入了再判斷是否有外鍵。顯示從表的清單的時候使用#region 判斷是否傳入id,如果傳入了再判斷是否有外鍵。顯示從表的清單的時候使用
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (this.DataID != null)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 string ForeignColumn = this.dal_Metadata.ExecuteString("select top 1 ForeignColumn from Manage_Function_Info where FunctionID=" + this.FunctionID);
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (ForeignColumn != null && ForeignColumn.Length > 0)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //設定固定查詢條件
【自然架構】 頁面裡的父類—— 改進和想法、解釋 tmpQuery = ForeignColumn + "=" + this.DataID;
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (tableQueryAlways.Length == 0)
【自然架構】 頁面裡的父類—— 改進和想法、解釋 tableQueryAlways = tmpQuery;
【自然架構】 頁面裡的父類—— 改進和想法、解釋 else
【自然架構】 頁面裡的父類—— 改進和想法、解釋 tableQueryAlways += " and " + tmpQuery;
【自然架構】 頁面裡的父類—— 改進和想法、解釋 }
【自然架構】 頁面裡的父類—— 改進和想法、解釋 }
【自然架構】 頁面裡的父類—— 改進和想法、解釋 #endregion
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 判斷使用者角色是否有清單的過濾方案#region 判斷使用者角色是否有清單的過濾方案
【自然架構】 頁面裡的父類—— 改進和想法、解釋 tmpQuery = MyUser.GetResourceListCastSQL(this.FunctionID);
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (tmpQuery.Length > 0)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //有過濾方案,即查詢語句。添加到分頁控件的固定查詢條件裡。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (tableQueryAlways.Length == 0)
【自然架構】 頁面裡的父類—— 改進和想法、解釋 tableQueryAlways = tmpQuery;
【自然架構】 頁面裡的父類—— 改進和想法、解釋 else
【自然架構】 頁面裡的父類—— 改進和想法、解釋 tableQueryAlways += " and " + tmpQuery;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //設定分頁控件的固定查詢條件。
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonPager.PagerSQL.TableQueryAlways = tableQueryAlways;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 設定顯示資料控件的屬性#region 設定顯示資料控件的屬性
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 設定顯示資料控件的屬性
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public virtual void SetGridInfo()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (ctl_CommonGrid != null)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetGridInfo(ctl_CommonGrid);
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 設定資料顯示控件執行個體的屬性
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// <param name="grid">資料顯示控件MyGrid</param>
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public void SetGridInfo(MyGrid grid)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 UDRMGrid myUDRM = new UDRMGrid();
【自然架構】 頁面裡的父類—— 改進和想法、解釋 grid.UDRM = myUDRM;
【自然架構】 頁面裡的父類—— 改進和想法、解釋 myUDRM.DALCustomer = base.dal_Customer; //設定客戶資料的資料通路函數庫
【自然架構】 頁面裡的父類—— 改進和想法、解釋 myUDRM.DALMetadata = base.dal_Metadata; //設定中繼資料的資料通路函數庫
【自然架構】 頁面裡的父類—— 改進和想法、解釋 myUDRM.FunctionID = this.FunctionID; //設定子產品标志,即功能節點的ID
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //設定目前使用者可以通路的字段——即權限到清單字段
【自然架構】 頁面裡的父類—— 改進和想法、解釋 myUDRM.RoleColumnID = MyUser.GetUserColumnIDs(this.FunctionID, "1");
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 設定查詢控件的屬性#region 設定查詢控件的屬性
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 設定查詢控件的屬性
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public virtual void SetFindControlInfo()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (ctl_CommonFind != null)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 SetFindControlInfo(ctl_CommonFind);
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (btn_Search != null)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 this.btn_Search.Click += new EventHandler(Btn_Search_Click);
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// <param name="find">查詢控件的執行個體</param>
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public void SetFindControlInfo(MyFind find)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 UDRMFind myUDRM = new UDRMFind();
【自然架構】 頁面裡的父類—— 改進和想法、解釋 find.UDRM = myUDRM;
【自然架構】 頁面裡的父類—— 改進和想法、解釋 find.User = MyUser;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 myUDRM.DALMetadata = base.dal_Customer; //設定資料通路函數庫
【自然架構】 頁面裡的父類—— 改進和想法、解釋 myUDRM.DALCustomer = base.dal_Metadata; //設定資料通路函數庫
【自然架構】 頁面裡的父類—— 改進和想法、解釋 myUDRM.FunctionID = this.FunctionID; //設定子產品标志,即功能節點的ID
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 find.SetTDColumns = 4; //設定列數
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 myUDRM.RoleColumnID = MyUser.GetUserColumnIDs(this.FunctionID, "3");
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 查詢按鈕觸發的事件#region 查詢按鈕觸發的事件
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 查詢按鈕觸發的事件
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// <param name="sender"></param>
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public virtual void Btn_Search_Click(object sender, EventArgs e)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonPager.PagerSQL.TableQuery = this.ctl_CommonFind.GetSearchWhere();
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonPager.PagerSQL.CreateSQL();
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonPager.BindFirstPage();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //Response.Write(this.ctl_CommonFind.GetSearchWhere ());
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 設定按鈕組#region 設定按鈕組
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 設定按鈕組
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public virtual void SetButtonBarInfo()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (ctl_CommonButtonBar != null)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonButtonBar.FunctionID = this.FunctionID;
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonButtonBar.DAL = this.dal_Customer;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (MyUser.PersonID == "1")
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //超級管理者不過濾按鈕
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonButtonBar.SetRoleButtonID = "";
【自然架構】 頁面裡的父類—— 改進和想法、解釋 else
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //其他使用者驗證按鈕
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ctl_CommonButtonBar.SetRoleButtonID = MyUser.GetUserButtonID(this.FunctionID);
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //驗證
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 驗證DataID#region 驗證DataID
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 驗證DataID。
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected override void SetDataID()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 base.SetDataID();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 string dataID = this.DataID;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (dataID == string.Empty)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 else
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //傳遞了參數,需要驗證
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (!Functions.IsInt(dataID))
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 Response.Write("DataID參數不正确!");
【自然架構】 頁面裡的父類—— 改進和想法、解釋 Response.End();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 驗證清單頁面與FunctionID是否比對#region 驗證清單頁面與FunctionID是否比對
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 驗證清單頁面與FunctionID是否比對
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected override void SetFunctionID()
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //基類裡驗證FunctionID是否是數字
【自然架構】 頁面裡的父類—— 改進和想法、解釋 base.SetFunctionID();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 驗證清單頁面與FunctionID是否比對#region 驗證清單頁面與FunctionID是否比對
【自然架構】 頁面裡的父類—— 改進和想法、解釋 string webPath = Request.Url.LocalPath;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 switch (webPath)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 case "/_CommonPage/DataList1.aspx": //通用清單頁面
【自然架構】 頁面裡的父類—— 改進和想法、解釋 case "/_CommonPage/DataTab.aspx": //通用标簽頁面
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //不需要做比對驗證
【自然架構】 頁面裡的父類—— 改進和想法、解釋 break;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 default:
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //需要驗證
【自然架構】 頁面裡的父類—— 改進和想法、解釋 string sql = "select top 1 1 from Manage_Function where FunctionID = " + this.FunctionID + "and WebURL like '" + webPath + "%'";
【自然架構】 頁面裡的父類—— 改進和想法、解釋 if (this.dal_Customer.ExecuteExists(sql))
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //有記錄,通過驗證
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //沒有記錄,不能繼續
【自然架構】 頁面裡的父類—— 改進和想法、解釋 Response.Write("FunctionID和頁面不比對!");
【自然架構】 頁面裡的父類—— 改進和想法、解釋 Response.End();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 3、具體的清單頁面
【自然架構】 頁面裡的父類—— 改進和想法、解釋 namespace Nature.UI.Common
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 資料清單
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public partial class DataList1 : Base.BasePageList
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 是否顯示查詢條件
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected string isShowSearch = ""; //是否顯示查詢
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 ///
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected void Page_Load(object sender, EventArgs e)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 base.ForeignID = this.DataID;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 重新整理目前頁面#region 重新整理目前頁面
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 重新整理目前頁面
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected void Btn_Reload_Click(object sender, System.EventArgs e)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 this.ctl_CommonPager.BindThisPage();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 顯示第一頁
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected void Btn_ReloadFirst_Click(object sender, System.EventArgs e)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //this.ctl_CommonPager.CreateQuery();
【自然架構】 頁面裡的父類—— 改進和想法、解釋 this.ctl_CommonPager.BindFirstPage();
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 查詢#region 查詢
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 查詢事件
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 public override void Btn_Search_Click(object sender, EventArgs e)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 base.Btn_Search_Click(sender, e);
【自然架構】 頁面裡的父類—— 改進和想法、解釋 isShowSearch = "isShowSearch = 0;";
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 導出到Excel#region 導出到Excel
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 /// 導出Excel的按鈕事件
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 protected void Btn_ToExcel_Click(object sender, System.EventArgs e)
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //導出到Excel
【自然架構】 頁面裡的父類—— 改進和想法、解釋 Session["toExcelSQL"] = ctl_CommonPager.PagerSQL.TableQuery ;
【自然架構】 頁面裡的父類—— 改進和想法、解釋 //Session["ViewCaseID"] = this.Lst_Case_List.SelectedValue;
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 Response.Redirect("/_CommonPage/toExcel.aspx?id=-2&k=9&fid=" + FunctionID);
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋
【自然架構】 頁面裡的父類—— 改進和想法、解釋 <head runat="server">
<title><%=Lbl_Title.Text%></title>
<%=CssWeb%>
<script language="javascript" type="text/javascript" src="/public/js/TableTR.js" ></script>
<script language="javascript" type="text/javascript" src="/public/js/My97DatePicker/WdatePicker.js" ></script>
</head>
<body>
<form id="form1" runat="server">
<div style="width:100%; font-size:14pt; text-align: center;vertical-align:middle;">
<br /><asp:Label ID="Lbl_Title" runat="server" style="font-size:14pt; "></asp:Label>
</div>
<Nature:OperationButtonBar ID="ctl_CommonButtonBar" runat="server" />
<div id="div_Search" style="display:none;" align="center"><br />
<fieldset title="查詢條件" style="PADDING-BOTTOM:6px;BORDER-RIGHT: #666 1px solid; BORDER-TOP: #ddd 1px solid; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: #666 1px solid;"><legend style="font-size:9pt;">查詢條件</legend>
<table width="100%" align="center" border="0" bgcolor="#ffffff">
<tr>
<td><Nature:MyFind id="ctl_CommonFind" runat="server"/></td>
<td width="50">
<asp:Button ID="Btn_Search" runat="server" Text=" 查 詢 " />
</td>
</tr>
</table>
</fieldset>
<div>
<Nature:MyGrid ID="ctl_CommonGrid" runat="server" />
<Nature:QuickPager ID="ctl_CommonPager" runat="server" PageUIGO="GO" />
<span id="dd"></span>
<span style="DISPLAY:none">
<asp:button id="Btn_ToExcel" runat="server" Text="導出到Excel" onclick="Btn_ToExcel_Click"></asp:button>
<asp:button id="Btn_ToAccess" runat="server" Text="導出到Access"></asp:button>
<asp:button id="Btn_Reload" runat="server" Text="重新整理本頁" onclick="Btn_Reload_Click"></asp:button>
<asp:button id="Btn_ReloadFirst" runat="server" Text="重新整理到第一頁" onclick="Btn_ReloadFirst_Click"></asp:button>
<Nature:MyTextBox id="Txt_isShowSearch" runat="server"/>
<iframe id="ifrmDel" name="ifrmDel" width="100" height="100"></iframe>
</span>
</form>
</body>
==========================
= 希望我的想法,能夠給您帶來一點幫助! =
= 大家一起研究、讨論,共同提高、發财! =