我們通常,會將一些通用的頁面模組作成使用者控制項,然後載入到頁面中,
但是 VS.NET 2003不支援對使用者控制項自動產生後至代碼控制項的定義,需要我們手動的添加
RXOA.Moude.TestUserControl TestUserControl 1(預設為private)
像一般的控制項的定義一樣,前面是他的命名空間+類名,後面是他的在頁面中的控制項ID,預設的為類名+1
但是如果你按照上面的方式定義後,你在頁面中要引用TestUserControl 1就會出現異常。
你需要定義如下:
protected RXOA.Moude.TestUserControl TestUserControl 1
為什麼會這樣呢?
我們要理解其實ASPX頁面在運行過程中,會編譯成一個類,該類繼承了該ASPX頁面後者代碼的類
也就是說aspx類是後至代碼類的子類。
而在aspx類中對TestUserControl 1的定義是protected的,
而你在aspx類的父類中定義的TestUserControl 1是private的。
這樣我們來類比一個模型如下:
父類:
public class pclass{public pclass(){//// TODO: 在此處添加建構函式邏輯// }private string test1;public string GetTest(){return test1;}}
子類
public class cclass : pclass{public cclass(){//// TODO: 在此處添加建構函式邏輯// }protected string test1 = "sdfsdf";}
當我們在程式中調用
string test = new Ruixin.WorkFlowDB.pclass().GetTest();
上面的程式能夠編譯通過,但是得到的test是空。
這個模型能夠很明顯的看的出來,test 肯定是空的。
可以將這個模型對照著上面使用者控制項的定義方式不同所造成的結果也就不一樣
就可以很很好的理解了。