Code behind the export button
Protected Sub cmddown_Click_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmddown.Click
dg.Columns(0).Visible = False
Dim form As HtmlForm = New HtmlForm
Dim attachment As String = "attachment; filename=Employee.xls"
Response.ClearContent()
Response.AddHeader("content-disposition", attachment)
Response.ContentType = "application/ms-excel"
Dim stw As System.IO.StringWriter = New System.IO.StringWriter
Dim htextw As HtmlTextWriter = New HtmlTextWriter(stw)
form.Controls.Add(dg)
Me.Controls.Add(form)
DisableControls(dg)
form.RenderControl(htextw)
Response.Write(stw.ToString)
Response.End()
End Sub
Code for disable all server side control on the datagrid
Private Sub DisableControls(ByVal gv As Control)
Dim lb As LinkButton = New LinkButton
Dim l As Literal = New Literal
Dim name As String = String.Empty
Dim i As Integer = 0
Do While (i < gv.Controls.Count)
If (gv.Controls(i).GetType Is GetType(LinkButton)) Then
CType(gv.Controls(i), LinkButton).ForeColor = Color.Black
l.Text = CType(gv.Controls(i), LinkButton).Text
gv.Controls.Remove(gv.Controls(i))
gv.Controls.AddAt(i, l)
ElseIf (gv.Controls(i).GetType Is GetType(DropDownList)) Then
l.Text = CType(gv.Controls(i), DropDownList).SelectedItem.Text
gv.Controls.Remove(gv.Controls(i))
gv.Controls.AddAt(i, l)
End If
If gv.Controls(i).HasControls Then
DisableControls(gv.Controls(i))
End If
i = (i + 1)
Loop
End Sub
v1c3r