Usuário com melhor resposta
CheckedListBox salvar items selecionados

Pergunta
-
Olá.
Então tenho uma checkboxlist que recebe uma lista de databases do sql server.
digamos que tenho as data bases 1, 2, 3, 4 , 5 e quero selecionar apenas as data bases 1, 3 e 5.
agora que está o problema não sei como prosseguir e fazer uma função para salvar esses dados em um arquivo XML.
Tentei usar a função mais fica um erro exatamente nessa linha no Listitem
foreach (Listitem item in cbl1.Items)
fala pra gerar uma class, mais eu não sei o porque, também não se essa função é exatamente o que to precisando, mas me parece que sim.
toda ajuda e bem vinda.
Obrigado.
private void saveXML() { try { //pick whatever filename with .xml extension string filename = @"C:\DBXML\"+"XML" + DateTime.Now.Day + ".xml"; XmlDocument xmlDoc = new XmlDocument(); try { xmlDoc.Load(filename); } catch (FileNotFoundException ex) { //if file is not found, create a new xml file XmlTextWriter xmlWriter = new XmlTextWriter(filename, System.Text.Encoding.UTF8); xmlWriter.Formatting = Formatting.Indented; xmlWriter.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'"); xmlWriter.WriteStartElement("CheckBox"); //If WriteProcessingInstruction is used as above, //Do not use WriteEndElement() here //xmlWriter.WriteEndElement(); //it will cause the <root> to be <Root /> xmlWriter.Close(); xmlDoc.Load(filename); MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); } foreach (Listitem item in cbl1.Items) { if (item.Selected) { XmlNode root = xmlDoc.DocumentElement; XmlElement childNode = xmlDoc.CreateElement("CheckedItem"); XmlText textNode = xmlDoc.CreateTextNode("hello"); textNode.Value = "It is Checked Item"; root.AppendChild(childNode); childNode.SetAttribute(item.Text, item.Value); childNode.AppendChild(textNode); xmlDoc.Save(filename); } } } catch (Exception ex) { MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); } }
- Editado Anderson Tomaz quinta-feira, 21 de fevereiro de 2013 18:31
Respostas
-
Opa acho que é isso mesmo que aconteceu Vinicius, eu to usando o CheckedListBox.
Agora que percebi, que falha mano me desculpa, como foi a 1 vez que usei esse componente eu vi o nome e interpretei como checkboxlist.Olá amigo, segue um exemplo de como fazer com a CheckedListBox:
Abraço.CheckedListBox check = new CheckedListBox();
check.Items.Add( "Teste" );
check.Items.Add( "Mais um item" );for ( int i = 0; i < check.Items.Count; i++ ) { if ( check.GetItemCheckState( i ) == CheckState.Checked ) { String Teste = check.Items[i].ToString();
MessageBox.Show(Teste); } }
Se a resposta foi útil, não deixe de clicar na setinha verde. Alguma ajuda neste tópico te levou a solução do problema? Então proponha como resposta para o tópico ser melhor identificado.
- Sugerido como Resposta Afonso Fernandes sexta-feira, 22 de fevereiro de 2013 01:51
- Marcado como Resposta Anderson Tomaz quarta-feira, 6 de março de 2013 20:59
Todas as Respostas
-
Amigo, dê uma olha neste tutorial sobre gravar arquivos em XML
http://cbsa.com.br/post/3-formas-de-criar-e-salvar-arquivo-xml-c-xmltextwriter.aspx
Se a resposta foi útil, não deixe de clicar na setinha verde. Alguma ajuda neste tópico te levou a solução do problema? Então proponha como resposta para o tópico ser melhor identificado.
- Editado Vinícius Rafael Tavares quinta-feira, 21 de fevereiro de 2013 04:03
-
-
Então Vinícius, a parte de Salvar eu conheço um pouco, o que eu preciso mesmo é salvar os dados
selecionados dentro de uma CheckedboxList para que eu possa usar em um outro form depois.
A sua dificuldade está em pegar os valores dos itens marcados do CheckedBoxList?
Se for, faça dessa maneira para percorre-lo:
for (int i = 0; i < ChekedBoxItens1.Items.Count; i++) { if (CheckedBoxItens1.Items[i].Selected) { string PegaValor = CheckedBoxItens1.Items[i].Value //ou se optar pegar o text string PegaValor = CheckedBoxItens1.Items[i].Text //Método para salvar no XML ... } }
Verifique se ele está preenchido com algum item antes, esse pode ter sido o motivo do erro no seu programa.
Abraço.
Se a resposta foi útil, não deixe de clicar na setinha verde. Alguma ajuda neste tópico te levou a solução do problema? Então proponha como resposta para o tópico ser melhor identificado.
- Sugerido como Resposta AnaSantos quinta-feira, 21 de fevereiro de 2013 12:55
-
-
Boa Tarde
Então Vinicius não se estou fazendo algo errado mais esse função para pegar os dados não funcionou tbm, qndo coloco ela no código fala que
.Selected no if não existe, e a string pegar valor da erro tbm.
Opa, Anderson!
Você realmente está usando o CheckBoxList do namespace System.Web.UI.WebControls.CheckBoxList ?
Dê uma olhada se é o mesmo: http://msdn.microsoft.com/pt-br/library/system.web.ui.webcontrols.checkboxlist.aspx
Talvez esteja confundindo com um CheckedListBox, pois testei com o mesmo código qe te enviei e funfou.Se não for o mesmo diga-me qual é, e chegando em casa monto outro exemplo pra ti.
Se a resposta foi útil, não deixe de clicar na setinha verde. Alguma ajuda neste tópico te levou a solução do problema? Então proponha como resposta para o tópico ser melhor identificado.
- Editado Vinícius Rafael Tavares quinta-feira, 21 de fevereiro de 2013 18:00
-
-
Opa acho que é isso mesmo que aconteceu Vinicius, eu to usando o CheckedListBox.
Agora que percebi, que falha mano me desculpa, como foi a 1 vez que usei esse componente eu vi o nome e interpretei como checkboxlist.Olá amigo, segue um exemplo de como fazer com a CheckedListBox:
Abraço.CheckedListBox check = new CheckedListBox();
check.Items.Add( "Teste" );
check.Items.Add( "Mais um item" );for ( int i = 0; i < check.Items.Count; i++ ) { if ( check.GetItemCheckState( i ) == CheckState.Checked ) { String Teste = check.Items[i].ToString();
MessageBox.Show(Teste); } }
Se a resposta foi útil, não deixe de clicar na setinha verde. Alguma ajuda neste tópico te levou a solução do problema? Então proponha como resposta para o tópico ser melhor identificado.
- Sugerido como Resposta Afonso Fernandes sexta-feira, 22 de fevereiro de 2013 01:51
- Marcado como Resposta Anderson Tomaz quarta-feira, 6 de março de 2013 20:59