chkExport = oDataGridItem.FindControl("chkExport")
不知道vb.net的语法是不是允许隐式转换。反正c#是应该这样的:
chkExport = (System.Web.UI.WebControls.CheckBox)oDataGridItem.FindControl("chkExport");
因为FindControl方法返回的是Control类,你必须显式转换(上溯造型)。

解决方案 »

  1.   

    我只知道在模板按钮列的响应事件中需要用
    dim checkbox1 as checkbox=e.Item.Cells(模板所在的列数).Controls(1)
    if checkbox1.check then
    ...
    end if
    搞定了,通知我啊[email protected],谢谢了
      

  2.   

    加上这句试试,加*****的
    For Each oDataGridItem In datagrid.Items
    if oDataGridItem.ItemIndex>=0 then '*******************************
          chkExport = oDataGridItem.FindControl("chkExport")
          if chkExport.checked then
             .....
          end if
    end if '*****************************************
    Next这里的Item其实是从-1开始的(页眉),你可以跟踪一下item.itemindex的值。
      

  3.   

    先跟踪一下,看是否找到了子控件 chkExport(你的CheckBox的id号)
    在C#中,是blackcatiii(ljh) 说的那样找控件。vb.net下应该也要转换一下吧(不肯定,你试一下)
    Dim chkExport As System.Web.UI.WebControls.CheckBox
    chkExport = (System.Web.UI.WebControls.CheckBox)oDataGridItem.FindControl("chkExport")
      

  4.   

    将 datagrid的 数据帮定 部分 方在 
    if not ispostback thenend if 
    中间
      

  5.   

    在页面提交时不要进行 datagrid 的数据绑定
      

  6.   

    唉,老兄,你在page_load中是不是有DataBind()//就是你的代码绑定函数注意改成这样:
    if(!IsPostBack)
    BindGrid();
      

  7.   

    对头!要显示的转换为checkbox
      

  8.   

    你的问题和我的一样,我用c#,强制转换了也不行,但调试的时候只有一次变成true,以后再也没有看见过这种情况(我没有改变代码)。很奇怪,我怀疑是asp.net的bug,因为我在别的页面也用这种方法,一直很正确,在这里就不行。~
    另外,用不用DataBind()都一样。
      

  9.   

    哈哈~我真是晕~~
    按照secondlf(风)说得就可以了~:)谢谢!