Получить индекс выбранной строки в GridView — простые методы для разработчиков веб-форм ASP.NET

В веб-формах ASP.NET элемент управления GridView широко используется для отображения табличных данных. Иногда вам может потребоваться получить индекс выбранной строки в GridView. В этой статье блога мы рассмотрим несколько методов выполнения этой задачи. Независимо от того, являетесь ли вы новичком или опытным разработчиком ASP.NET WebForms, это руководство предоставит вам простые для понимания примеры кода.

Метод 1: использование события SelectedIndexChanged
Элемент управления GridView предоставляет событие SelectedIndexChanged, которое запускается при выборе строки. Вы можете получить доступ к индексу выбранной строки, используя свойство SelectedRow GridView.

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    int rowIndex = GridView1.SelectedIndex;
    // Use the rowIndex as needed
}

Метод 2: использование JavaScript и HiddenField
В сценариях, где вам необходимо выполнять операции на стороне клиента, вы можете использовать JavaScript вместе с HiddenField для хранения индекса выбранной строки.

<script type="text/javascript">
    function getSelectedRowIndex() {
        var gridView = document.getElementById('<%= GridView1.ClientID %>');
        var hiddenField = document.getElementById('<%= HiddenField1.ClientID %>');
        hiddenField.value = gridView.selectedIndex;
    }
</script>
<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound">
    <!-- GridView markup -->
</asp:GridView>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:Button ID="Button1" runat="server" OnClientClick="getSelectedRowIndex();" Text="Get Selected Row Index" />

В файле кода программной части вы можете получить доступ к выбранному индексу строки из HiddenField.

protected void Button1_Click(object sender, EventArgs e)
{
    int rowIndex = int.Parse(HiddenField1.Value);
    // Use the rowIndex as needed
}

Метод 3: использование CommandArgument и CommandName
Вы можете использовать свойства CommandArgument и CommandName кнопки или LinkButton в GridView для передачи индекса строки.

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand">
    <Columns>
        <!-- Other columns -->
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server" Text="Select" CommandName="SelectRow" CommandArgument='<%# Container.DataItemIndex %>'></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

В файле кода программной части обработайте событие RowCommand и получите индекс строки из CommandArgument.

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "SelectRow")
    {
        int rowIndex = int.Parse(e.CommandArgument.ToString());
        // Use the rowIndex as needed
    }
}

Получение индекса выбранной строки в GridView является общим требованием при разработке веб-форм ASP.NET. В этой статье мы обсудили три метода: использование события SelectedIndexChanged, JavaScript и HiddenField, а также CommandArgument/CommandName. Выберите метод, который лучше всего соответствует вашему конкретному сценарию, и начните внедрять его в свои проекты уже сегодня. Приятного кодирования!

Не забудьте оптимизировать свою публикацию в блоге для SEO, включив в нее соответствующие ключевые слова, такие как веб-формы ASP.NET, GridView, индекс строк, выбранная строка, получение индекса выбранной строки и веб-разработка.