2011-12-09 6 views
5

Mam ListView i skonfigurowałem przycisk Usuń łącze. Po kliknięciu przycisku Usuń jednak otrzymuję "The ListView 'ListView' raised event ItemDeleting which wasn't handled.". Postanowiłem więc wypróbować i zaimplementować DeleteLinkButton_Click() i ListView_ItemDeleted() ... jednak nie potrafię określić, który wiersz wybrałem dla mojego DeleteLinkButton_Click().Jak wykonać usuwanie w widoku listy, które nie jest powiązane przez kontrolkę

Nie powiązałem mojego źródła za pomocą kontroli, zamiast tego użyłem następującej metody.

ja zorientować czy mogę zidentyfikować mój wiersz mogę uzyskać dostęp do wartości etykiet tam i przekazać je do procedury przechowywanej i wykonać moje polecenie Usuń.

Czy ktoś może pomóc? Jeśli potrzebuję dostarczyć więcej kodu, daj mi znać!

Edit:

kodzie

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 

ASPX Page

<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

proszę pisać jakiś kod, dzięki czemu możemy uzyskać lepszy obraz tego, co jest dzieje. – gsirianni

Odpowiedz

2

Możesz dowiedzieć się indeks elementu zostać usunięty w przypadku ItemDeleting, więc obchodzenia że pierwszy może ci pomóc. Wygląda to tak:

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

W tym momencie, masz teraz indeks elementu, którego przycisk kasowania został kliknięty, więc można spojrzeć na etykietę i przeprowadzenia DELETE (jak wspomniano w pytaniu).

Powodzenia!

+1

@daveomcd dzięki za edycję. Mój vb.net jest w najlepszym razie zardzewiały =) – jadarnel27

+0

haha ​​bez problemu. Dzięki za post, próbuję go teraz! – daveomcd

3

W projekcie strony umieść ten przycisk usuwania w.

<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> 

Na stronie za napisać ten kod

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(); 
    } 
Powiązane problemy