1

我有 4 个文本框,它们都带有 id "Ans" 和从 1 到 4 的数字

 <asp:TextBox ID="Ans1" runat="server" placeholder="Favorite Color"></asp:TextBox>

我有这个循环来获取每个文本框的值

        for(int i = 1 ; i<5 ; i++)
    {

        TextBox ans = FindControl (string.Concat("Ans", i.ToString()) as TextBox  != null );
    }

但我收到此消息“无法将类型字符串转换为文本框”

我不知道怎么了

4

3 回答 3

4

对于初学者来说,你错过了一个密切的括号)

我想这就是你的意思

for(int i = 1 ; i<5 ; i++)
{
    TextBox ans = FindControl(string.Concat("Ans", i.ToString())) as TextBox;
}
于 2013-07-24T00:18:29.600 回答
3

你错过了一个)

FindControl(string.Concat("Ans", i.ToString()))

我想它可以像这样更具可读性

TextBox ans = FindControl(string.Format("Ans{0}",i)) as TextBox

此外,您需要!= null在最后删除,因为无论您尝试做什么,这都不是正确的地方:)

于 2013-07-24T00:16:43.297 回答
2

尝试这个:

TextBox ans = (TextBox)FindControl(string.Concat("Ans", i.ToString()));
if(ans != null)
{
    // found the textbox
}
于 2013-07-24T00:21:40.780 回答