Private Sub ibExport_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ibExport.Click
        Dim sw As New StringWriter
        Dim i As Integer
        Dim c As Control
        sw.WriteLine("编号,名称,范围,单位,地点,使用者,月份,有效日期")
        For i = 0 To DataGrid1.Items.Count - 1
            Dim ck As CheckBox = DataGrid1.Items(i).Cells(0).FindControl("checkbox1")
              If ck.Checked = True Then
                sw.WriteLine(DataGrid1.Items(i).Cells(1).Text & "," & DataGrid1.Items(i).Cells(2).Text & "," & DataGrid1.Items(i).Cells(3).Text & "," & DataGrid1.Items(i).Cells(4).Text & "," & DataGrid1.Items(i).Cells(5).Text & "," & DataGrid1.Items(i).Cells(6).Text & "," & DataGrid1.Items(i).Cells(7).Text & "," & DataGrid1.Items(i).Cells(8).Text)
              End If
         Next
        sw.Close()
        Response.AddHeader("Content-Disposition", "attachment; filename=check_plan.csv")
        Response.ContentType = "application/ms-excel"
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312")
        Response.Write(sw)
        Response.End()
    End Sub实现选中checkbox,输出数据到excel,sw.writeline(..).为什么?

解决方案 »

  1.   

    问题应该是:为什么sw.writeline(...)不 执行?
      

  2.   

     Dim ck As CheckBox = DataGrid1.Items(i).Cells(0).FindControl("checkbox1")
    ==
     Dim ck As CheckBox = DataGrid1.Items(i).FindControl("checkbox1")调试查看ck是否为null
      

  3.   

    你先跟踪一下,看看stringWriter里面有什么东西,不行就别用StringWriter,直接用string或stringBuilder也可以,直接用respose.write输出就可以了
      

  4.   

    感谢楼上!ck是checkbox 但是选中后ck.checked=false 
      

  5.   

     设置断点,查看null和单元格数据
      

  6.   

    C#.net,Javascript,AJAX,SilverLight,HTML5,CSS3,WPF,WCF,Win Phone技术交流群118907238!
      

  7.   

    If ck.Checked = True Then
    这句有问题,设置了断点,单元格数据正确,运行结果:只能输出一行字符串
      

  8.   

    如果去掉 If ck.Checked = True Then
    和 end if
    就有结果了。
    请问高手在哪里?
      

  9.   

    答案: if not ispostback then
         
          else 
              'bindquery()      end if