gpt4 book ai didi

c# - .FindControl 总是返回 null

转载 作者:太空狗 更新时间:2023-10-29 22:33:26 25 4
gpt4 key购买 nike

我有两种方法。第一个动态创建一个表,然后将该表添加到 PlaceHolder 中。

private void generateData(){
Table tbl = new Table();
tbl.ID = "table1";
holder_info.Controls.Add(tbl);
// ...adding tr's and td's....
// ...adding CheckBox in tds....
}

如果我在这个方法中执行 .FindControl("...") ,我可以使用以下方法找到控件:

CheckBox check = (CheckBox)holder_info.FindControl("checkbox1");

没关系,但不是我假装的那样。

在第二种方法中,我想检查用户是否选中了 checkBox 并做了一些事情,但是我找不到控件(它总是返回 null)。

protected void saveInfo_Click(object sender, ImageClickEventArgs e)
{
CheckBox check = (CheckBox)holder_info.FindControl("checkbox1");
if(check.checked){ ... }
}

另外,如果我试图找到控件“table1”,我得到的是空值。

为什么会这样?

最佳答案

这是因为您正在向页面动态添加一个控件,并且当您单击按钮页面时获得回发并删除动态添加的控件。这就是为什么它无法在按钮单击事件中找到复选框控件的原因。

对于动态控件,查看文章 Retaining State for Dynamically Created Controls in ASP.NET applications (代码项目)。

关于c# - .FindControl 总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12076952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com