supongo que tienes dos paneles... el del grid y el del componente para editar el campo...
¿que es lo que ocultas, el panel del grid?
si es asi tal vez, dentro del page_load del edList(el control del grid) podrias validar esa propiedad para determinar si se carga todo o no...eso incluye el cargar de nuevo el control...ya que si vuelves a cargar el control del ediItem se pierden los eventos y debe ser por eso que no se ejecutan el acceso a la BD.
Segun este codigo (que posteaste antes),
1. Siempre vuelves a cargar el contenido de controles (a lo que no le veo mayor problema a menos que tambien se trate de EditItem).
2. Preguntas si se esta editando (esta variable donde la asignas? me imagino que cuando presionas el boton editar del grid ya que luego preguntas por el ItemIndex).
3. Y por ultimo.. como le haces para desactivar IsEditing... ya que cuando postea (al dar click en aceptar) ...vuelve a preguntar... si se esta editando.. y posiblemente tenga el valor de true.. (aunque tal vez la estes desactivando en CargarEditItem/CargaNewEditItem) y si es true se vuelve a cargar el control edItem...
como ves?
Código:
// Cargamos el contenido de los controles
this.CargaContenido();
//Comprobamos que se quiere hacer
if(IsEditing) //si está siendo editado
{
if(this.ItemIdex == -1) //y no hay seleccionado ninguno, cargamos un nuevo item
this.CargaNewEditItem();
else //sino cargamos el item seleccionado
this.CargarEditItem((object)this.dgElementos,this. ItemIdex);
}