首先,控件在回發中消失的原因是它們被動態地添加到頁面中,並且當發生回發時,關於動態控件的信息丟失,頁面沒有關於這些動態控件的信息。
現在關於從動態用戶控件中的控件獲取值,您可以使用FindControl
方法,或者必須遍歷Controls集合的用戶控件以獲取對TextBoxes
的引用。
有關如何做到這一點的想法:
//1. Using ID of user control
//inside button_click method
protected void btnSubmit_Click(...)
{
TextBox txt1 = idOfUserControl.FindControl(textBoxId);
}
//2. Using type of user control
//inside button_click method
protected void btnSubmit_Click(...)
{
foreach(Control c in Page.Controls)
if(c is YourUserControlClass)
{
YourUserControlClass control = (YourUserControlClass)c;
TextBox txt1 = c.FindControl(textBoxId);
}
}