我在占位符中创建了一系列面板,每个面板内有5个文本框。
按下按钮,我想从每个文本框中获取.Text,以及Panel的ID。我计划使用JaggedArray来跟踪所有Panel及其内部TextBox。
string[][] jaggesaddress = new string[stop][]; //stop is an int and equal to amount of panels on screen.
String[] numbers = new String[stop];
int a = 0;
//Control ctrl;
foreach (Control ctrl in BookingPlaceholder.Controls) //BookingPlaceholder is placehodler ID
{
if (ctrl is Panel)
{
numbers[a] = ctrl.ID;
a++;
//ctrl.ID = numbers[a];
foreach(TextBox tb in ctrl.ID) // error here
{
}
}
}
然而,第二个foreach循环有一个错误,我不是100%肯定如何克服这个。
“无法将类型'char'转换为'System.Web.UI.WebControls.TextBox'”
我知道数字[a]确实找到了第一个面板,但它是一个没有ID扩展名的字符串。
任何建议都表示赞赏。
答案 0 :(得分:4)
您的内部循环正在尝试遍历字符串。你想要的是......
foreach(TextBox tb in ctrl.Controls.OfType<TextBox>())
而不是
foreach(TextBox tb in ctrl.ID)
答案 1 :(得分:3)
如果PlaceHolder中有更多通用控件可用 你需要找到文本框控件。因此,检查控制类型也是安全的。
foreach (Control ctr in ctrl.Controls)
{
if (ctr is TextBox)
{
//Do your things
// ((TextBox)ctr).Text
}
}