Pregunta

escribir el código para eliminar de repetidor, pero tengo un problema. cuando corro mi página de anuncio de eliminar una de las filas, se elimina esta fila y cuando refrescar la página, otro filas eliminadas que no quiero borrar that.in hecho quiero eliminar una fila, sino eliminar dos filas cuando restauro página

protected void SendBoxrep_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    MembershipUser Admin = Membership.GetUser(User.Identity.Name);

    if (e.CommandName == "del")
    {
        Guid g = new Guid(e.CommandArgument.ToString());
        MessageClass.deleteMessage(g);

        SendBoxrep.DataSource = MessageClass.selectMessagesUser(Admin);
        SendBoxrep.DataBind();
    }

}

    public static void deleteMessage(Guid id)
{
    foreach (Message item in MessageClass.LoadAll(id))
    {
        MDB.Messages.DeleteOnSubmit(item);

        MDB.SubmitChanges();
    }
}
¿Fue útil?

Solución

Trate de eliminar basado en clave primaria de la tabla U R borrar.

Supongamos u r borrar una tabla decir mensajes que ha Messageid como clave primaria. Ahora bien, si u desea eliminar un mensaje en particular, entonces enviar el messageID como CommandArgument y borrar eso.

Después de eliminar cuando r actualizar la página el mismo evento se produce es decir, si se pulsa un botón de eliminar en una fila para eliminar el mensaje del evento SendBoxrep_ItemCommand despedido y tomando la CommandArgument se elimina el registro. Una vez más se presiona F5 para actualizar la página, entonces el evento anterior de borrado se dispara. Así se eliminan los dos registros.

Ahora, utilizando la clave principal (messageID) se eliminará sólo un registro, incluso si usted enciende el mismo evento dos veces presionando F5.

Otros consejos

En un escenario como este, he tenido éxito en el uso Response.Redirect para recargar la página y deshacerse de la información de devolución de datos después de que el evento de devolución se ha manejado. De esta manera la devolución de datos va a pasar sólo una vez y actualizar la página utilizando el navegador no debería causar ningún problema. En lugar de llamar a la Repeater.DataBind ...

Response.Redirect(Request.RawUrl);

Puede que tenga que realizar cambios de diseño en otras partes de su página o añadir un parámetro a la cadena de consulta que indica que vuelve a cargar la página, pero eso es el impuesto de proporcionar esta capacidad.

Los comentarios anteriores muestran que estés actualizar la página a través de F5; esto es conocido por causar problemas en las páginas ASP.NET, debido a la forma en que parte posterior del poste, un cómo funciona su ciclo de vida. Recomiendo el lugar creando un botón Actualizar de la página en sí, que hace la devolución de datos y actualiza la información necesaria del repetidor está obligado a.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top