2010-03-03 32 views
1

我正在ASP.net中創建WebUserControl,並希望能夠稍後訪問該控件的元素。當我嘗試訪問它們時,雖然我一起訪問它們。例如,將一個CheckBox和一個表添加到一個控件中,然後找到CheckBox,檢查它是否被勾選並且是否被勾選,從TextBoxes中獲取值。查找和訪問WebUserControl的元素

我目前擁有從自定義控件加載頁面上的所有內容,但是當遍歷頁面上的控件時,看起來並不是我的WebUserControl類型的控件。所有的控件都在頁面上,但它們作爲單獨的ASP.net控件存在。

我在想這個錯嗎?有一個更好的方法嗎?

我不確定這個問題解釋得很好,請隨時澄清問題。

回答

2

您需要通過製作公共屬性或函數來使其滿足您的需要或行爲,從而暴露用戶控件的功能。因此,例如,你的情況,你可以像你的用戶控件有一個屬性(你也可以做一個函數):

public List<string> SomeValues 
{ 
    get 
    { 
     // return null if checkbox is not checked, you could just as easily return an empty list. 
     List<string> lst = null; 
     if (yourCheckBox.Checked) 
     { 
      lst = new List<string>(); 

      // You could have something that iterates and find your controls, remember you 
      // are running this within your user control so you can access all it's controls. 
      lst.Add(yourTextBox1.Text); 
      lst.Add(yourTextBox2.Text); 
      lst.Add(yourTextBox3.Text); 
      // etc... 
     } 
     return lst; 
    } 
} 

然後在你的頁面,您可以訪問您的用戶控制和調用這個屬性來獲取值:

// assuming you defined your usercontrol with the 'yourUserControl' ID 
List<string> lst = yourUserControl.SomeValues; 

的關鍵是要揭露你想要在你的用戶控件什麼,所以無論是用它並不需要了解它的細節或執行。您應該能夠像使用其他任何控件一樣使用它。

+0

這就是我想念的,謝謝。 – mwright 2010-03-03 16:03:16