Récupérer les lignes précédentes et suivantes d'une table à l'aide de jQuery

Je suis en utilisant ASP.NET pour créer une page avec un GridView qui est très modifiable par l'utilisateur final. Fondamentalement, toutes les lignes contiennent des zones de texte (au lieu de texte statique) que l'utilisateur peut modifier quand il le veut. Aucune publication se produit jamais, sauf quand il clique sur le bouton Enregistrer au bas de la page. Ensuite, je boucle sur chaque ligne de la grille, de récupérer les valeurs dans les champs de chaque ligne et de les sauvegarder dans la base de données.

Je suis maintenant essayer de mettre en œuvre la permutation de deux lignes (pour déplacer une ligne vers le haut ou vers le bas) en Javascript, et pour cela j'ai besoin de récupérer le précédent et suivant des lignes dans une table.

En ce moment, ma GridView contient un HiddenField que la première colonne, qui contient l'Id unique de l'élément de données (en ai-je besoin de le stocker dans la base de données de cours). Pour d'autres fins (suppression d'une ligne), j'ai compris comment faire pour récupérer cet Id, qui est-ce:

var itemHf = $(this).parent().parent().parent().find(':input');

Il y a tellement de "parent" appels parce que ce qui se passe dans l'événement click d'une Image, qui est à l'intérieur d'un LinkButton, qui est à l'intérieur de la dernière colonne de ma grille. Donc, le premier parent est le LinkButton, la prochaine est la cellule du tableau, et enfin la ligne de la table. Ensuite, je suppose que le find(':input') fonction retourne le premier élément d'entrée dans cette ligne (qui dans mon cas est le champ caché qui contient l'id).

Donc, en utilisant la même méthode, je peux obtenir le ligne:

var row = $(this).parent().parent().parent();

Mais comment puis-je obtenir le précédent et suivant des lignes?

Aussi, une fois que j'ai ces lignes, j'ai besoin de récupérer des valeurs de plus d'éléments d'entrée. Je sais que je peux trouver le premier à utiliser find(':input')mais comment puis-je trouver la deuxième et la troisième entrée des éléments dans cette ligne du tableau?

MODIFIER
Je n'ai pas de code html à ce moment, mais ici, c'est le ASP.NET le balisage de la grille:

        <asp:GridView runat="server" ID="grid" AutoGenerateColumns="False" 
            onrowcommand="grid_RowCommand" onrowdeleting="grid_RowDeleting">
            <Columns>

                <!-- Move Up button -->
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:LinkButton runat="server" OnClientClick="return false;">
                            <asp:Image ImageUrl="~/Images/moveUp.png" AlternateText="moveUp" runat="server" CssClass="moveUp" ID="moveUp" />
                        </asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>

                <!-- Move Down button -->
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:LinkButton runat="server" OnClientClick="return false;">
                            <asp:Image ImageUrl="~/Images/moveDown.png" AlternateText="moveDown" runat="server" CssClass="moveDown" ID="moveDown" />
                        </asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>

                <!-- ID Hidden Field -->
                <asp:TemplateField>
                    <ItemTemplate>
                            <asp:HiddenField runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "Id") %>' />
                    </ItemTemplate>
                </asp:TemplateField>

                <!-- Name textbox field -->
                <asp:TemplateField HeaderText="Naam">
                    <ItemTemplate>
                            <asp:TextBox runat="server" Width="200px" Text='<%# DataBinder.Eval(Container.DataItem, "Name") %>' />
                    </ItemTemplate>
                </asp:TemplateField>

                <!-- Price textbox field -->
                <asp:TemplateField HeaderText="Prijs">
                    <ItemTemplate>
                            <asp:TextBox runat="server" Width="50px" Text='<%# DataBinder.Eval(Container.DataItem, "Price") %>' />
                    </ItemTemplate>
                </asp:TemplateField>

                <!-- Delete button -->
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:LinkButton runat="server" OnClientClick="return false;">
                            <asp:Image ImageUrl="~/Images/delete.png" AlternateText="delete" runat="server" CssClass="delete" ID="delete" />
                        </asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

Et voici un exemple de jQuery que j'utilise:

    $(document).ready(function () {

        $('table td img.delete').click(function () {
            var id = $(this).closest('tr').find(':input').val();
            alert(id);
        });
    });

source d'informationauteur Nick Thissen