2008-11-26 8 views
2

Il me manque quelque chose ici, mais j'ai regardé trop longtemps pour le voir. J'ai un ListView simple, avec les boutons Edit/Update/Cancel. J'ai la configuration suivante dans mon EditItemTemplate lorsque la ligne passe en mode d'édition:Obtenir la valeur d'édition de ListView

<EditItemTemplate> 
    <asp:Label ID="AccountIdLabel" runat="server" Text='<%#Eval("lan_id")%>' /> 
    <asp:TextBox ID="EmployeeIdTextBox" runat="server" Text='<%#Eval("emp_id")%>' Columns="5" /> 
</EditItemTemplate> 

A ce stade, les types d'utilisateurs d'une valeur dans le EmployeeIdTextBox. Quand ils presse mise à jour, il essaie de faire ce qui suit:

Private Sub ListView_ItemUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewUpdateEventArgs) Handles EmployeeListView.ItemUpdating 

    Dim accountId = CType(EmployeeListView.EditItem.FindControl("AccountIdLabel"), Label).Text 
    Dim employeeId = CType(EmployeeListView.EditItem.FindControl("EmployeeIdTextBox"), TextBox).Text 

    UpdateMap(accountId, employeeId) 

    EmployeeListView.EditIndex = -1 
    GetData() 

End Sub 

Le problème est que « employeeId » revient à la valeur d'origine dans la zone de texte, et non pas ce que l'utilisateur est entré. Qu'est-ce que je rate?

MISE À JOUR: Found it. Comme d'habitude, causé par un autre code non inclus ici dans un effort pour poser une question simple. :)

Répondre

1

Je l'ai trouvé - j'avais code dans l'événement ItemCommand qui a été la manipulation d'autres événements, mais il faisait l'GetData() à la fin quelle que soit la commande, donc en gros les données étaient bien rafraîchi avant l'événement ItemUpdating a été déclenché. J'ai resserré ItemCommand, et il fonctionne maintenant comme prévu.

Questions connexes