无法将类型为'AjaxControlToolkit.MaskedEditExtender'的对象强制转换为'System.Web.UI.WebControls.TextBox'

时间:2012-05-24 17:15:39

标签: c# jquery asp.net

我正在使用此:http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/MaskedEdit/MaskedEdit.aspx

在一个列中,我有多个文本框绑定到数据库中的某些列。 我的目标是从那些被掩盖的文本框中获取值。 由于列中有4个控件,我正在尝试获取如下值:

String firstTXT = ((TextBox)(row.Cells[5].Controls[1])).Text;
String SecondTXT = ((TextBox)(row.Cells[5].Controls[2])).Text;

我可以从firsttexbox获取值而没有任何错误(但它也被屏蔽)。 当我试图从第二次得到时,我得到: Unable to cast object of type 'AjaxControlToolkit.MaskedEditExtender' to type 'System.Web.UI.WebControls.TextBox'

有没有机会解决它?感谢

1 个答案:

答案 0 :(得分:1)

显然,单元格中的第三个控件是MaskedEditExtender,它会扩充您的第一个文本框。根据您的标记,您可能希望获得第四个控件:

string secondTXT = ((TextBox) row.Cells[5].Controls[3]).Text;

或者,更好的是,在文本框中添加id属性并使用FindControl()获取它们:

string firstTXT = ((TextBox) row.Cells[5].FindControl("firstID")).Text;
string secondTXT = ((TextBox) row.Cells[5].FindControl("secondID")).Text;