使用UserControl時,在Page中定義方式

來源:互聯網
上載者:User

我們通常,會將一些通用的頁面模組作成使用者控制項,然後載入到頁面中,

但是 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 肯定是空的。
可以將這個模型對照著上面使用者控制項的定義方式不同所造成的結果也就不一樣
就可以很很好的理解了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.