Error al pasar datagrid que posee columna a excel
Publicado por Didi (18 intervenciones) el 24/09/2007 22:03:33
hola Sres.
Tengo problemas con el código de pasar un datagrid a un excel, creo que mi problema es porque mi datagrid contiene una columna tipo link, me pueden ayudar?
Este es el código que utilizo:
Dim strconexion As String
strconexion = "Server=localhost;Port=3306;Database=DATABASE_NCM;Uid=root;Pwd="";"
Dim objconexion As New MySqlConnection(strconexion)
Dim strMySQL As String
strMySQL = " select (COD_COUNTRY_NCM) as COUNTRY,(CUSTOMER_NCM) as CUSTOMER,(CITY_NCM) as City,(NAME_NETWORK_NCM) as NETWORK,(SITE_NAME_NCM) as SITE,(NODE_VENDOR) as N_VENDOR ,(NODE_NCM)as Node,(ACCEPTANCE_DATE_NCM) as DATE,(SW_CONTRACT_NAME) as SW_SUPPORT_CONTRACT,(SW_WARRANTY_STATUS_NCM) as SW_WARRANTY_STATUS,(SW_WARRANTY_START_DATE_NCM) as SW_WARRANTY_START_DATE,(SW_WARRANTY_END_DATE_NCM) as SW_WARRANTY_END_DATE,(HW_SERVICE_CONTRACT_NAME) as HW_SUPPORT_CONTRACT,(HW_WARRANTY_STATUS_NCM) as HW_WARRANTY_TYPE,(HW_WARRANTY_START_DATE_NCM) as HW_WARRANTY_START_DATE,(HW_WARRANTY_END_DATE_NCM) as HW_WARRANTY_END_DATE,(DEPLOYMENT_COMMITTED_NCM) as SW_UPDATE_COMMITMENT,(COMMENTS_NCM) as COMMENTS,(PLATFORM_TYPE_NCM) as PLATFORM_TYPE,(PLATFORM_VERSION_NCM) as PLATFORM_VERSION,(PLATFORM_CORRECTION_NCM) as PLATFORM_CORRECTION,(APPLICATION_TYPE_NCM) as APPLICATION_TYPE,(APPLICATION_VERSION_NCM) as APPLICATION_VERSION,(APPLICATION_CORRECTION_NCM)as APPLICATION_CORRECTION,(ADDITIONAL_CORRECTIONS_NCM)as ADDITIONAL_CORRECTIONS,(MAINTENANCE_LEVEL_NCM)as MAINTENANCE_LEVEL,(MAINTENANCE_LEVEL_END_DATE)as MAINTENANCE_LEVEL_END_DATE,(ID)as ID from tbl_network_ncm where COD_COUNTRY_NCM = '" & DropDownList4.Text & "' and CUSTOMER_NCM= '" & DropDownList1.Text & "' and NAME_NETWORK_NCM= '" & DropDownList5.Text & "'"
Dim objcommand As New MySqlCommand(strMySQL, objconexion)
Dim objadapter As New MySqlDataAdapter
objadapter.SelectCommand = objcommand
objconexion.Open()
Dim objds As New Data.DataSet
objadapter.Fill(objds, "Networks")
objconexion.Close()
DataGrid1.DataSource = objds
DataGrid1.DataBind()
'---
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment;filename=Clientes.xls")
Response.Charset = ""
Me.EnableViewState = False
Dim oStringWriter As New System.IO.StringWriter()
Dim oHtmlTextWriter As New System.Web.UI.HtmlTextWriter(oStringWriter)
DataGrid1.RenderControl(oHtmlTextWriter)
Response.Write(oStringWriter.ToString())
Response.End()
El error que me arroja me señala esta línea :
DataGrid1.RenderControl(oHtmlTextWriter)
y dice esto:
Control 'DataGrid1_ctl02_ctl00' of type 'DataGridLinkButton' must be placed inside a form tag with runat=server
Tengo problemas con el código de pasar un datagrid a un excel, creo que mi problema es porque mi datagrid contiene una columna tipo link, me pueden ayudar?
Este es el código que utilizo:
Dim strconexion As String
strconexion = "Server=localhost;Port=3306;Database=DATABASE_NCM;Uid=root;Pwd="";"
Dim objconexion As New MySqlConnection(strconexion)
Dim strMySQL As String
strMySQL = " select (COD_COUNTRY_NCM) as COUNTRY,(CUSTOMER_NCM) as CUSTOMER,(CITY_NCM) as City,(NAME_NETWORK_NCM) as NETWORK,(SITE_NAME_NCM) as SITE,(NODE_VENDOR) as N_VENDOR ,(NODE_NCM)as Node,(ACCEPTANCE_DATE_NCM) as DATE,(SW_CONTRACT_NAME) as SW_SUPPORT_CONTRACT,(SW_WARRANTY_STATUS_NCM) as SW_WARRANTY_STATUS,(SW_WARRANTY_START_DATE_NCM) as SW_WARRANTY_START_DATE,(SW_WARRANTY_END_DATE_NCM) as SW_WARRANTY_END_DATE,(HW_SERVICE_CONTRACT_NAME) as HW_SUPPORT_CONTRACT,(HW_WARRANTY_STATUS_NCM) as HW_WARRANTY_TYPE,(HW_WARRANTY_START_DATE_NCM) as HW_WARRANTY_START_DATE,(HW_WARRANTY_END_DATE_NCM) as HW_WARRANTY_END_DATE,(DEPLOYMENT_COMMITTED_NCM) as SW_UPDATE_COMMITMENT,(COMMENTS_NCM) as COMMENTS,(PLATFORM_TYPE_NCM) as PLATFORM_TYPE,(PLATFORM_VERSION_NCM) as PLATFORM_VERSION,(PLATFORM_CORRECTION_NCM) as PLATFORM_CORRECTION,(APPLICATION_TYPE_NCM) as APPLICATION_TYPE,(APPLICATION_VERSION_NCM) as APPLICATION_VERSION,(APPLICATION_CORRECTION_NCM)as APPLICATION_CORRECTION,(ADDITIONAL_CORRECTIONS_NCM)as ADDITIONAL_CORRECTIONS,(MAINTENANCE_LEVEL_NCM)as MAINTENANCE_LEVEL,(MAINTENANCE_LEVEL_END_DATE)as MAINTENANCE_LEVEL_END_DATE,(ID)as ID from tbl_network_ncm where COD_COUNTRY_NCM = '" & DropDownList4.Text & "' and CUSTOMER_NCM= '" & DropDownList1.Text & "' and NAME_NETWORK_NCM= '" & DropDownList5.Text & "'"
Dim objcommand As New MySqlCommand(strMySQL, objconexion)
Dim objadapter As New MySqlDataAdapter
objadapter.SelectCommand = objcommand
objconexion.Open()
Dim objds As New Data.DataSet
objadapter.Fill(objds, "Networks")
objconexion.Close()
DataGrid1.DataSource = objds
DataGrid1.DataBind()
'---
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment;filename=Clientes.xls")
Response.Charset = ""
Me.EnableViewState = False
Dim oStringWriter As New System.IO.StringWriter()
Dim oHtmlTextWriter As New System.Web.UI.HtmlTextWriter(oStringWriter)
DataGrid1.RenderControl(oHtmlTextWriter)
Response.Write(oStringWriter.ToString())
Response.End()
El error que me arroja me señala esta línea :
DataGrid1.RenderControl(oHtmlTextWriter)
y dice esto:
Control 'DataGrid1_ctl02_ctl00' of type 'DataGridLinkButton' must be placed inside a form tag with runat=server
Valora esta pregunta


0