我正在使用asp.net 2.0我需要帮助字符串值到文本框ID ..我已经在源中声明了文本框,其中字符串值中的id..i有十多个textbox.but textbox id序列号我设置值所有文本框同时使用相同的值我在代码下面使用
for (int i = 1; i <= 12; i++)
{
String _control = "txt_capex_" + i.ToString().Trim();
TextBox txt = FindControl(_control) as TextBox;
txt.Text = _splitamount.ToString().Trim();
}
我在
中收到错误System.NullReferenceException未被用户代码处理 Message =“对象引用未设置为对象的实例。
这是什么解决方案..
答案 0 :(得分:1)
假设您的所有文本框都不在页面本身上,这是否公平?也就是说,您可能在Panel
,GridView
或其他类似控件中嵌套了一些。特别是如果你动态添加它们,我认为你是。确保您正在调用父FindControl
方法,而不仅仅是页面。
此方法仅搜索页面的即时或顶级容器;它不会递归地搜索页面中包含的命名容器中的控件。要访问从属命名容器中的控件,请调用该容器的FindControl方法。
另一种可能性是你正在施放错误的类型。因为与传统的as
投射相比,您使用的是(Type)value
关键字,如果FindControl
方法返回任何无法分配的内容,该表达式将解析为null与传统抛出异常相比,TextBox
值。
答案 1 :(得分:0)
FindControl或_splitamount返回NullReferenceException。请调试你的代码。如果可能的话,请你把StackTrace放在这里吗?