Foros del Web » Programación para mayores de 30 ;) » .NET »

Generar automáticamente el valor ID en DetailsView

Estas en el tema de Generar automáticamente el valor ID en DetailsView en el foro de .NET en Foros del Web. Hola a todos. Me encuentro con el siguiente problema. Tengo un DetailsView desde el que doy de alta registros y quiero generar la clave del ...
  #1 (permalink)  
Antiguo 08/09/2008, 05:53
 
Fecha de Ingreso: agosto-2008
Mensajes: 3
Antigüedad: 15 años, 8 meses
Puntos: 0
Generar automáticamente el valor ID en DetailsView

Hola a todos.

Me encuentro con el siguiente problema. Tengo un DetailsView desde el que doy de alta registros y quiero generar la clave del registro a base de código porque tiene que cumplir ciertas características.

Lo que he hecho hasta ahora es generar un método privado que me crea la cadena correcta y lo inserto en el campo del ID en el DetailsView, pero cuando le doy a insertar en base de datos me dice que el campo está vacío y por ser una clave primaria no puede insertarlo.

Esto es lo que he invocado en todos los eventos que he probado
Código:
    private void generateKey()
    {
        Keymaker keymaker = new Keymaker();
        if (detailsView.CurrentMode == DetailsViewMode.Insert)
        {
            // random Id
            detailsView.Rows[0].Cells[1].Text = keymaker.hazClave();
    }
}
Creo que puede ser porque cuando escribo el ID en el TextBox no le doy tiempo al DetailsView a recoger el dato. El tema está en que he probado a escribir dicho dato en los eventos, load, PreRender, DataBound e Init y siempre obtengo fallos. En ocasiones me dice que el campo está vacío y en otras me dice que cuando lo quiero escribir me encuentro fuera de índice (supongo que porque el DetailsView aún no se ha renderizado).

Sin embargo, si dejo que el TextBox sea editable, y lo lleno a mano todo funciona correctamente. ¿Alguien sabe en qué momento y cómo se puede escribir en un campo del detailsView? Mi idea sería ocultar ese campo y escribirlo automáticamente para que el usuario no sea consciente del uso de claves.

Un saludo y muchas gracias a todos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:06.