Неважно, я понял! Кстати, ваш ответ тоже был хорош, но я могу отметить только один как принятый, извините!

ользую ASP.NET для создания страницы с GridView, которая очень редактируема для конечного пользователя. По сути, все строки содержат текстовые поля (вместо статического текста), которые пользователь может редактировать в любое время. Никакой обратной передачи не происходит, за исключением случаев, когда он нажимает кнопку «Сохранить» внизу страницы. Затем я перебираю каждую строку в сетке, извлекаю значения в элементах управления в каждой строке и сохраняю их обратно в базу данных.

Сейчас я пытаюсь реализовать перестановку двух строк (чтобы переместить строку вверх или вниз) в Javascript, и для этого мне нужен какой-то способ извлечь предыдущую и следующую строки в таблице.

На данный момент мой GridView содержит HiddenField в качестве первого столбца, который содержит уникальный Id элемента данных (мне нужно это, чтобы сохранить его обратно в базу данных, конечно). Для других целей (удаление строки) я выяснил, как получить этот Id, а именно:

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

Есть так много «родительских» вызовов, потому что это происходит в событии click изображения, которое находится внутри LinkButton, который находится внутри последнего столбца моей сетки. Таким образом, первый родительский элемент - LinkButton, следующий - ячейка таблицы и, наконец, строка таблицы. Тогда, я полагаю,find(':input') Функция возвращает первый элемент ввода в этой строке (который в моем случае является скрытым полем, содержащим идентификатор).

Таким образом, используя тот же метод, я могу получитьток ряд:

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

Но как мне получить предыдущие и следующие строки?

Кроме того, как только у меня появятся эти строки, мне нужно будет извлечь значения из большего количества элементов ввода. Я знаю, что могу найти первый, используяfind(':input'), но как мне найти второй и третий элементы ввода в этой строке таблицы?

РЕДАКТИРОВАТЬ
В настоящее время у меня нет HTML, но вот разметка ASP.NET для сетки:

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

И вот пример jQuery, который я использую:

    $(document).ready(function () {

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

Ответы на вопрос(3)

Ваш ответ на вопрос