c# - 在运行时创建的控件的访问值

标签 c# asp.net

我有一个问题:

我在运行时在向导中包含的面板中创建了一个文本框。

我想访问客户端将插入此文本框的值。

我写了这段代码来做到这一点:

TextBox _txt = Panel1.FindControl(txtArray[i].ID) as TextBox;

但是我得到这个错误:

Object reference not set to an instance of an object.

这意味着 FindControl 没有通过它的 id 找到这个控件。

这是在运行时创建文本框的代码:

for (int i = 1; i <= loop; i++)
{
     txtArray[i] = new TextBox();
     txtArray[i].ID = "txt4Name" + i;
}

谁能帮我找出错误?

最佳答案

如果您只需要访问 TextBox,那么您的数组中已经有了它。无需使用 FindControl。

TextBox _txt = txtArray[i];

但是,我怀疑 ypu 可能在这里有另一个错误。您确定它已添加到面板中,也在 PostBack 上吗?

关于c# - 在运行时创建的控件的访问值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4217846/

相关文章:

c# - C# ASP.NET 如何查看当前请求资源是一个页面?

c# - SQL值包含到另一个表数据

c# - 如何强制仅匿名访问 Controller 操作?

asp.net - 使用带有 GET 方法和操作参数的 MVC Html.BeginForm

c# - 使用 Linq 在 EF 中编辑用户时无法创建类型的常量值

.net - ASP.NET MVC:OutputCache和http header -缓存控件

c# - 确保List <T>类型中的所有元素均为T

c# - 从 C# 动态调用非托管代码

jquery - 带有 jQ​​uery UI 对话框的 CKEditor、拼写检查和按钮在第二次单击时不起作用

c# - 反射和泛型获取属性值