Microsoft Developer Network >
Página Inicial dos Fóruns
>
Fóruns do Web Development
>
ASP .NET
>
Exportar DataGrid para XML
Exportar DataGrid para XML
- Como faço no C# para exportar os dados de um DataGrid para um arquivo XML fazendo aparecer uma janela de download, para o usuário apontar onde será salvo o arquivo?
Respostas
- No evento do seu botão faça isso
DataSet ds = MethodReturnsDataSet();
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(ds.GetXml())- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:17
- Ola Tiago,
Você pode fazer algo deste tipo.
Exemplo (não sei como você popula o DataGrid, por isso estou fazendo um exemplo bem generico):
var t = dgAdministradoras.DataSource.GetType(); if (t == typeof(DataTable)) { DataTable dt = (DataTable)dgAdministradoras.DataSource; dt.WriteXml("NomeDoArquivo", XmlWriteMode.WriteSchema); } else if (t == typeof(DataSet)) { DataSet ds = (DataSet)dgAdministradoras.DataSource; ds.WriteXml("NomeDoArquivo", XmlWriteMode.WriteSchema); }
Você deve fazer a verificação com os tipos de dados que podem carregar o DataGrid.
Mas diga, como você popula o Grid? Pois existem maneiras melhores da que acabei de demonstrar.
Atenciosamente
Thiago Dorneles- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:17
Fale,
Complementando com o Thiago esse link tem um exemplo bem tranquilo
http://www.devx.com/tips/Tip/28651
Abraço!
Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:16
- EditadoErysson Barros quarta-feira, 4 de novembro de 2009 12:20erro
- Ola Tiago,
Crie seu DataTable sendo como uma propriedade, sendo a melhor forma em ViewState.
Exemplo:
private DataTable DadosGrid
{
get
{
if (ViewState["DadosGrid"] == null)
{
ViewState["DadosGrid"] = new DataTable();
}
return (DataTable)ViewState["DadosGrid"];
}
set
{
ViewState["DadosGrid"] = value;
}
}
O ViewState é mantido o estado dentro da página, ou seja, não "expira", então pode acessar simplesmente:
DadosGrid.WriteXml(...);
E é uma forma recomendada de se utilizar ViewState.
Coloque este código lá em cima, onde fica as variaveis globais.
Atenciosamente
Thiago Dorneles- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:16
Fale,
Olha esse link bem interessante:
http://www.macoratti.net/vbn5_tdt.htm
Abraço!
Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:17
- Thiago.
Você não poderia escrever o xml no momento em que carrega seu grid e no clique do botão apenas fazer o download do XML?Para escrever o xml, tem o método dataset.xmlwrite(endereco);Espero que ajude...
Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:17
Todas as Respostas
- Ola Tiago,
Você tem o DataSet ou algo do tipo com os dados que estão sendo exibidos no Grid?
Se sim, é simples.
Exemplo (com DataSet):
NomeDoDataSet.WriteXml("DestinoENomeArquivo", XmlWriteMode.WriteSchema);
Export DataGrid Content to an XML File
http://www.devx.com/tips/Tip/28651
Atenciosamente
Thiago Dorneles - Thiago,
No método que vou exportar (no evento click de um botao) não tem o DataSet, seria partindo de um DataGrid mesmo. O DataGrid seria a fonte de dados. - Ola,
Como você preenche seu DataGrid?
Thiago Dorneles - No evento do seu botão faça isso
DataSet ds = MethodReturnsDataSet();
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(ds.GetXml())- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:17
- Ola Tiago,
Você pode fazer algo deste tipo.
Exemplo (não sei como você popula o DataGrid, por isso estou fazendo um exemplo bem generico):
var t = dgAdministradoras.DataSource.GetType(); if (t == typeof(DataTable)) { DataTable dt = (DataTable)dgAdministradoras.DataSource; dt.WriteXml("NomeDoArquivo", XmlWriteMode.WriteSchema); } else if (t == typeof(DataSet)) { DataSet ds = (DataSet)dgAdministradoras.DataSource; ds.WriteXml("NomeDoArquivo", XmlWriteMode.WriteSchema); }
Você deve fazer a verificação com os tipos de dados que podem carregar o DataGrid.
Mas diga, como você popula o Grid? Pois existem maneiras melhores da que acabei de demonstrar.
Atenciosamente
Thiago Dorneles- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:17
Fale,
Complementando com o Thiago esse link tem um exemplo bem tranquilo
http://www.devx.com/tips/Tip/28651
Abraço!
Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:16
- EditadoErysson Barros quarta-feira, 4 de novembro de 2009 12:20erro
- Tem um método CarregarGrid(), nele vai ser preenchido um DataTable com os dados vindo de um DataReader, se fosse dentro deste método, blz, mas não é!
Quando o usuário clicar em um botão exportar, será exportado para XML, portando dentro desse método eu só consigo manipular dados globais como o DataGrid, exceto se eu declarasse um DataSet global, o que não acho bom.
Tem alguns exemplos disso que quero facilmente no google, mas só para Excel e não XML. - Ola Tiago,
Crie seu DataTable sendo como uma propriedade, sendo a melhor forma em ViewState.
Exemplo:
private DataTable DadosGrid
{
get
{
if (ViewState["DadosGrid"] == null)
{
ViewState["DadosGrid"] = new DataTable();
}
return (DataTable)ViewState["DadosGrid"];
}
set
{
ViewState["DadosGrid"] = value;
}
}
O ViewState é mantido o estado dentro da página, ou seja, não "expira", então pode acessar simplesmente:
DadosGrid.WriteXml(...);
E é uma forma recomendada de se utilizar ViewState.
Coloque este código lá em cima, onde fica as variaveis globais.
Atenciosamente
Thiago Dorneles- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:16
Fale,
Olha esse link bem interessante:
http://www.macoratti.net/vbn5_tdt.htm
Abraço!
Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:17
- Thiago.
Você não poderia escrever o xml no momento em que carrega seu grid e no clique do botão apenas fazer o download do XML?Para escrever o xml, tem o método dataset.xmlwrite(endereco);Espero que ajude...
Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh- Marcado como RespostaHarley AraujoMSFT, Moderadorsexta-feira, 6 de novembro de 2009 11:17

