2011-12-09 16 views
5

Tengo un ListView y he configurado mi botón Eliminar enlace. Cuando hice clic en Eliminar, sin embargo, obtuve "The ListView 'ListView' raised event ItemDeleting which wasn't handled.", así que decidí intentar implementar el DeleteLinkButton_Click() y ListView_ItemDeleted() ... sin embargo, no puedo encontrar la manera de identificar qué fila seleccioné para mi DeleteLinkButton_Click().Cómo realizar una eliminación en la vista de lista que no está vinculada a un control

No vinculé mi fuente a través de un control sino que usé el siguiente método.

Calculo si puedo identificar mi fila puedo acceder a los valores de las etiquetas de allí y pasarlos a un procedimiento almacenado y realizar mi ELIMINAR.

¿Alguien puede ayudar? Si necesito proporcionar más código, ¡házmelo saber!

Editar:

CodeBehind

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not IsPostBack Then 
     UpdateDisplay() 
    End If 
End Sub 

Protected Sub UpdateDistplay() 
    ListView.DataSource = myObject.RetrieveInfo() 
    ListView.DataBind() 
End Sub 

página ASPX

<ItemTemplate> 
    <tr> 
     <td> 
     <asp:LinkButton ID="DeleteLinkButton" Text="Delete" CommandName="Delete" OnClientClick="return confirm('Delete this Info?')" runat="server"></asp:LinkButton> 
     </td> 
     <td> 
     <asp:Label ID="Name" runat="server" Text='<%# Bind("Name") %>'></asp:Label> 
     </td> 
    </tr> 
</ItemTemplate> 
+0

Por favor enviar un código para que podamos tener una mejor idea de qué está pasando. – gsirianni

Respuesta

2

Puede averiguar el índice del elemento que va a eliminar en caso ItemDeleting, por lo que el manejo de ese primero podría ayudarte un poco más. Se ve así:

Protected Sub myListView_OnItemDeleting(ByVal sender As Object, ByVal e As ListViewDeleteEventArgs) 
    Dim deletedIndex As Integer 
    deletedIndex = e.ItemIndex 
End Sub 

En este punto, ahora tiene el índice del elemento cuyo botón de borrado se ha hecho clic, por lo que puede buscar la etiqueta y realizar la DELETE (como usted ha mencionado en su pregunta).

¡Buena suerte!

+1

@daveomcd gracias por la edición. Mi vb.net está oxidado en el mejor de los casos =) – jadarnel27

+0

jaja no hay problema. Gracias por el mensaje lo estoy intentando ahora! – daveomcd

3

En el diseño de la página, coloque el botón Eliminar en.

<asp:LinkButton runat="server" ID="lbtnDelete" CommandArgument='<%#DataBinder.Eval(Container,"DataItem.ID") %>' 
           OnClick="lbtnDelete_Click" CssClass="deleteButton" OnClientClick="return confirm('Are you sure?');"> 
            <img src="resources/images/icons/cross.png" alt="Delete" /></asp:LinkButton> 

En la página detrás de escribir este código

protected void lbtnDelete_Click(object sender, EventArgs e) 
    { 
     int ID = Convert.ToInt32(((LinkButton)sender).CommandArgument); 
     Tbl_Mode Tbl_Mode = DataClassesDataContext.Tbl_Modes.Single(p => p.ID == ID); 
     DataClassesDataContext.Tbl_Modes.DeleteOnSubmit(Tbl_Mode); 
     DataClassesDataContext.SubmitChanges(); 
     divDelete.Visible = true; 
     Bind(); 
    } 
Cuestiones relacionadas