C#学习教程:ASP.net.FindControl()和GridView返回null我正在调试其他人编写的一些代码,但我在处理GridView语句时遇到了问题。我的问题是我的gridview总是空的。我在LoginView内的面板中有一个声明的GridView,它基本上设置如下。请登录后,在C#文件中,我有以下语句GridViewGridView1=(GridView)LoginView1.FindControl("GridView1");当我去运行代码时,我在GridView1上得到一个NullRefrenceException。我是否需要深入到面板以引用GridView,或者我是否应该能够从主LoginView1部分访问它?编辑:更改我的代码片段以包含匿名模板的信息查找子控件的控件是一个大问题。您可能会考虑使用扩展方法,以便您可以轻松调用JeffAtwood的递归子控件(如Simon的回答中所述)......或您编写的任何版本。这只是使用另一篇文章中的代码的示例:GridViewGridView1=(GridView)LoginView1.FindControlRecursive("GridView1");这是代码。publicstaticclassWebControlExtender{publicstaticControlFindControlRecursive(thisControlroot,stringid){if(root.ID==id){returnroot;}foreach(Controlcinroot.Controls){Controlt=FindControlRecursive(c,id);如果(t!=null){返回t;}}返回空值;FindControl只会检查您正在使用它的控件的直接后代。不会通过child-child递归传递。JeffAtwood居然发博了:http://www.codinghorror.com/blog/2005/06/recursive-pagefindcontrol.html以上是C#学习教程:ASP.net.FindControl()andGridViewreturnsnull分享所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
