none
Recuperar datos cargados en TextBox en EmptyDateTemplate de una GridView RRS feed

  • Pregunta

  • Saludos a todos; 

    Tengo un GridView con Footer Template que tienen varios TextBox donde se agregan registros nuevos a la base de datos, péro el Footer sólo se muestra cuando hay datos en el GridView, adicional mente cree los mismos controles del Footer en el EmptyData Template. Al ejecutar la aplicación con GridView vacío se me está mostrando los objetos creados en el EmptyData Template... El problema que tengo es que no sé como traer los controles del EmptyData Template para guardar los registros en la base de datos. Cuando ejecuto la aplicación me arroja el siguiente error:

    Error de servidor en la aplicación '/'.

    Referencia a objeto no establecida como instancia de un objeto.

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código. 

    Detalles de la excepción: System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.

    Error de código fuente: 
    Línea 426:                    Responsable.Consecutivo = int.Parse(lblConsecutivoAcudiente.Text.ToString());
    Línea 427:                    Responsable.Usuario = int.Parse(lblCodUsuario.Text.ToString());
    Línea 428:                    Responsable.Nombre = txtNombreGV2.Text;
    Línea 429:                    Responsable.Parentesco = dropParentescoGV2.SelectedValue;
    Línea 430:                    Responsable.Documento = txtDocumentoGV2.Text;

    muestro parte del código:

     if (e.CommandName.Equals("AgregarNew"))
                    { 
                        //crear los objetos del GridView Acudiente en la aplicacion
                        TextBox txtNombreGV2 = (TextBox)GridViewAcudiente.FindControl("txtnombreGV2");
                        DropDownList dropParentescoGV2 = (DropDownList)GridViewAcudiente.Controls[0].Controls[0].FindControl("dropParentescoGV2");
                        TextBox txtDocumentoGV2 = (TextBox)GridViewAcudiente.Controls[0].Controls[0].FindControl("txtDocumentoGV2");
                        TextBox txtTelefono1GV2 = (TextBox)GridViewAcudiente.Controls[0].Controls[0].FindControl("txtTelefono1GV2");
                        TextBox txtTelefono2GV2 = (TextBox)GridViewAcudiente.Controls[0].Controls[0].FindControl("txtTelefono2GV2");

                        //Agregar registros a la base de datos Responsables
                        Responsable.Consecutivo = int.Parse(lblConsecutivoAcudiente.Text.ToString());
                        Responsable.Nombre = txtNombreGV2.Text;
                        Responsable.Parentesco = dropParentescoGV2.SelectedValue;
                        Responsable.Documento = txtDocumentoGV2.Text;
                        Responsable.Telefono1 = txtTelefono1GV2.Text;
                        Responsable.Telefono2 = txtTelefono2GV2.Text;

                        Responsable.Agregar();
                        CargarGridViewAcudiente();
                        lblInformacion.Text = "Se agregó nuevo Acudiente";


    martes, 16 de julio de 2019 17:18

Todas las respuestas

  • hola

    >>Footer Template que tienen varios TextBox donde se agregan registros nuevos a la base de datos

    estas aplicando de forma incorrecta, el footer del grid no se utiliza para esta funcionalidad, alli puedes definir un paginado, quizas algunos totales, o similar, pero no se definen para la creacion de nuevas entradas

    estas forzando algo para lo cual no esta pensado

    >>adicional mente cree los mismos controles del Footer en el EmptyData Template

    sigues aplicando de forma incorrecta

    >>El problema que tengo es que no sé como traer los controles del EmptyData Template para guardar los registros en la base de datos

    tienes que buscar sobre

    GridView.EmptyDataTemplate Property

    sobre esa propiedad realizas el FindControl(), no sobre el grid

    pero igual no sigas por este camino no es correcto, crea un form para crear nuevos registros

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 17 de julio de 2019 5:11
  • Hola Leandro;

    Gracias por tú respuesta...

    Lo que yo quiero hacer es que por medio del  GridView se pueda editar, insertar y eliminar registros, los cuales funcionan sólo si el GridView tiene datos. Ahora realmente estoy confundida de como hacer para que el GridView se muestre si no tiene datos y a su vez permitir ingresar ese primer registro por medio de TextBox.  

    He leído varios tutoriales los cuales me llevaron a programar de ese modo, ya que he visto que si se puede hacer pero yo no conozco el código para programarlo.

    Gracias de verdad por tu sugerencia, pero si me puedes ayudar con esto.

    Gracias!


    Marianela

    jueves, 18 de julio de 2019 0:22