none
Texbox Autocomplete RRS feed

  • Pregunta

  • Hola tengo otra duda tengo un texbox autocomplete dejo el codigo


                AutoCompleteStringCollection namesCollection = new AutoCompleteStringCollection();

                var query = from c in context.Inspectores
                            select c.Afiliado;
                            
                            
                foreach (string comp in query)
                {
                    namesCollection.Add(comp);
                    
                }
                textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
                textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
                textBox1.AutoCompleteCustomSource = namesCollection;

    Hasta aqui todo bien lo que quiero hacer ademas es una vez seleccionado cargar otros campos de la tabla para llenar automáticamente otros textbox como por ejemplo apellido y nombre. se puede o debo hacer otra consulta para llenar esos datos

    martes, 16 de febrero de 2016 0:30

Respuestas

  • Entonces deberías dejarlo sólo con el primer textbox:

                var query = from c in context.Inspectores
                            select new { c.Afiliado };
    
                textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
                textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
                textBox1.AutoCompleteCustomSource.AddRange(query.Select(i => i.Afiliado).ToArray());

    Y en el evento Validated de ese textbox rellenar los otros:

            private void textBox1_Validated(object sender, EventArgs e)
            {
                var inspector = context.Inspectores.FirstOrDefault(i => i.Afiliado == textBox1.Text);
                if (inspector != null)
                {
                    textBox2.Text = inspector.Nombre;
                    textBox3.Text = inspector.Apellido;
                }
            }


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta EnzoTuc40 miércoles, 17 de febrero de 2016 11:44
    martes, 16 de febrero de 2016 20:46

Todas las respuestas

  • Puedes recuperar los datos en una única consulta.

    Mira este ejemplo:

                var query = from c in context.Inspectores
                            select new { c.Afiliado, c.Nombre, c.Apellido };
    
                textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
                textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
                textBox1.AutoCompleteCustomSource.AddRange(query.Select(i => i.Afiliado).ToArray());
    
                textBox2.AutoCompleteSource = AutoCompleteSource.CustomSource;
                textBox2.AutoCompleteMode = AutoCompleteMode.Suggest;
                textBox2.AutoCompleteCustomSource.AddRange(query.Select(i => i.Nombre).ToArray());
    
                textBox3.AutoCompleteSource = AutoCompleteSource.CustomSource;
                textBox3.AutoCompleteMode = AutoCompleteMode.Suggest;
                textBox3.AutoCompleteCustomSource.AddRange(query.Select(i => i.Apellido).ToArray());


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    martes, 16 de febrero de 2016 1:05
  • Puedes recuperar los datos en una única consulta.

    Mira este ejemplo:

                var query = from c in context.Inspectores
                            select new { c.Afiliado, c.Nombre, c.Apellido };
    
                textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
                textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
                textBox1.AutoCompleteCustomSource.AddRange(query.Select(i => i.Afiliado).ToArray());
    
                textBox2.AutoCompleteSource = AutoCompleteSource.CustomSource;
                textBox2.AutoCompleteMode = AutoCompleteMode.Suggest;
                textBox2.AutoCompleteCustomSource.AddRange(query.Select(i => i.Nombre).ToArray());
    
                textBox3.AutoCompleteSource = AutoCompleteSource.CustomSource;
                textBox3.AutoCompleteMode = AutoCompleteMode.Suggest;
                textBox3.AutoCompleteCustomSource.AddRange(query.Select(i => i.Apellido).ToArray());


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    Gracias por la respuesta probe tu codigo y funciona bien, pero me exprese mal en lo que pretendo el primer textbox el que busca numero de afiliado es autocomplete y una vez que elija un numero de afiliado completar en los otros textbox la información de ese numero de afiliado nombre apellido etc. o sea elejo numero de afiliado y cargo los otros textbox con el resto de campos de ese afiliado
    martes, 16 de febrero de 2016 12:14
  • Entonces deberías dejarlo sólo con el primer textbox:

                var query = from c in context.Inspectores
                            select new { c.Afiliado };
    
                textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
                textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
                textBox1.AutoCompleteCustomSource.AddRange(query.Select(i => i.Afiliado).ToArray());

    Y en el evento Validated de ese textbox rellenar los otros:

            private void textBox1_Validated(object sender, EventArgs e)
            {
                var inspector = context.Inspectores.FirstOrDefault(i => i.Afiliado == textBox1.Text);
                if (inspector != null)
                {
                    textBox2.Text = inspector.Nombre;
                    textBox3.Text = inspector.Apellido;
                }
            }


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta EnzoTuc40 miércoles, 17 de febrero de 2016 11:44
    martes, 16 de febrero de 2016 20:46
  • Excelente es lo que estaba buscando Gracias. 
    miércoles, 17 de febrero de 2016 11:44