oldcodepage = Session.Codepage ' 現在のコードページを退避
Session.Codepage = 0 ' コードページを既定値に戻す

' CSVファイルのダウンロード
Response.ContentType="application/octet-stream"
Response.AddHeader "Content-Disposition","attachment; filename=hoge.csv"
Response.Write "あ"
Session.Codepage = oldcodepage ' コードページを元に戻す
Response.End

参考URL:http://d.hatena.ne.jp/replication/20091214/1260745785
Protected Sub gvTest_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvTest.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
    Dim gvSummary As New GridView
  gvSummary.AutoGenerateColumns = False
    gvSummary.ShowFooter = True

Dim bfChoice As BoundField = New BoundField
bfChoice.DataField = "Choice"
bfChoice.HeaderText = "選択肢"
gvSummary.Columns.Add(bfChoice)

Dim bfCnt As New BoundField
bfCnt.DataField = "Cnt"
bfCnt.HeaderText = "人数"
gvSummary.Columns.Add(bfCnt)

Dim bfRatio As New BoundField
bfRatio.DataField = "Ratio"
bfRatio.HeaderText = "比率"
gvSummary.Columns.Add(bfRatio)

' フッター生成とか
AddHandler gvSummary.RowDataBound, AddressOf gvSummary_RowDataBound

Dim dtSummary As DataTable = ' データセット作成
gvSummary.DataSource = dtSummary
gvSummary.DataBind()
e.Row.Cells(2).Controls.Add(gvSummary)
  End If
End Sub

AddHandler gridViewTest.RowDataBound, AddressOf gridViewTest_RowDataBound

↓このイベントを追記してあげると動的に生成したコントロールのイベントを取れる
Protected Sub gridViewTest_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)

 ~処理~

End Sub
'ガベージ コレクタは、収集できるオブジェクトを見つけると、
'それぞれのオブジェクトを検査して、終了操作が必要かどうかを判断します。
System.GC.Collect()

' 別のスレッドはこのスレッドを中断することができます。
System.GC.WaitForPendingFinalizers

Dim strTest As String = "test1,test2,test3"
Dim aryTest As String() = strTest.Split(",")

' 出力
For Each item As String In aryTest
Debug.Print(item)
Next item