当前位置:编程学习 > C#/ASP.NET >>

我这样写怎么不对啊?

((GridView)(FindControl("gridList1"))).DataSource   这里写会报错


只能用gridList1.DataSource


但是我有很多个GridView  gridList1 gridList2  gridList3 控件,需要做个for循环 

("gridList"+ i)类似的,我该怎么写呢?

  --------------------编程问答-------------------- 遍历当前页面Form中的GridView 
 foreach (GridView gv in this.Form.Controls.OfType<GridView>())
            {
               var source= gv.DataSource;
            }
--------------------编程问答-------------------- 报啥错,是不是找到的不对,或没找到
--------------------编程问答-------------------- 遍历,2楼已经给出答案了! --------------------编程问答-------------------- ...你那只是实例名,不能写成for循环... 要么后面添加一个不带数字的 你要在改你的for循环么?


--------------------编程问答--------------------
引用 2 楼 bdmh 的回复:
报啥错,是不是找到的不对,或没找到


报错是

未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误: 

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  
--------------------编程问答--------------------
引用 1 楼 Return_false 的回复:
遍历当前页面Form中的GridView 
 foreach (GridView gv in this.Form.Controls.OfType<GridView>())
            {
               var source= gv.DataSource;
            }



也报错,我这里报错 是   错误 4 “System.Web.UI.ControlCollection”不包含“OfType”的定义,并且找不到可接受类型为“System.Web.UI.ControlCollection”的第一个参数的扩展方法“OfType”(是否缺少 using 指令或程序集引用?) D:\xc_soft\Code\镇江经发业务管理\ZJJFXT\ZJJFXT\FKPlan\FKP_Arrange.aspx.cs 70 56 ZJJFXT
--------------------编程问答-------------------- 试哈看 
foreach (var item in this.Form.Controls)
           if (item is GridView){
            {
               ((GridView)(item)).DataSource =...;
            }} --------------------编程问答--------------------
引用 7 楼 Icelove111 的回复:
试哈看 
foreach (var item in this.Form.Controls)
           if (item is GridView){
            {
               ((GridView)(item)).DataSource =...;
            }}


还是不行... --------------------编程问答-------------------- 如何不行,也许你的.net版本太低了
foreach (Control item in this.Form.Controls)
            {
                if (item is GridView)
                {
                    var obj = ((GridView)item).DataSource;

                }
            }
--------------------编程问答--------------------
引用 9 楼 Return_false 的回复:
如何不行,也许你的.net版本太低了
foreach (Control item in this.Form.Controls)
            {
                if (item is GridView)
                {
                    var obj = ((GridView)item).DataSource;

                }
            }


公司只给用2.0的版本!!!  你上面的这个还是不行... --------------------编程问答--------------------
引用 1 楼 Return_false 的回复:
遍历当前页面Form中的GridView 
 foreach (GridView gv in this.Form.Controls.OfType<GridView>())
            {
               var source= gv.DataSource;
            }
+1没看到过OfType这种用法+++++111 --------------------编程问答-------------------- 我还不知道LZ要干啥!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,