((GridView)(FindControl("gridList1"))).DataSource   这里写会报错
只能用gridList1.DataSource
但是我有很多个GridView  gridList1 gridList2  gridList3 控件,需要做个for循环 ("gridList"+ i)类似的,我该怎么写呢? 

解决方案 »

  1.   

    遍历当前页面Form中的GridView 
     foreach (GridView gv in this.Form.Controls.OfType<GridView>())
                {
                   var source= gv.DataSource;
                }
      

  2.   

    ...你那只是实例名,不能写成for循环... 要么后面添加一个不带数字的 你要在改你的for循环么?
      

  3.   


    报错是未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  
      

  4.   

    也报错,我这里报错 是   错误 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
      

  5.   

    试哈看 
    foreach (var item in this.Form.Controls)
               if (item is GridView){
                {
                   ((GridView)(item)).DataSource =...;
                }}
      

  6.   

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

  7.   

    +1没看到过OfType这种用法+++++111