none
CheckedListBox salvar items selecionados RRS feed

  • 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 &ltRoot />
                            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);
                        }
                    }



    quinta-feira, 21 de fevereiro de 2013 03:48

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:

    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); } }

    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 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
    quinta-feira, 21 de fevereiro de 2013 18:48

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.


    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.

    quinta-feira, 21 de fevereiro de 2013 04:09
  • 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
    quinta-feira, 21 de fevereiro de 2013 11:58
  • 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.

    quinta-feira, 21 de fevereiro de 2013 17:03
  • 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.


    quinta-feira, 21 de fevereiro de 2013 17:59
  • 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.

    quinta-feira, 21 de fevereiro de 2013 18:32
  • 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:

    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); } }

    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 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
    quinta-feira, 21 de fevereiro de 2013 18:48