Прочитать на английском

Поделиться через


GridView.EditIndex Свойство

Определение

Возвращает или задает индекс строки для правки.

public virtual int EditIndex { get; set; }

Значение свойства

Индекс (с нуля) строки для правки. По умолчанию принимается значение –1, указывающее на то, строка пребывает в режиме правки.

Исключения

Указанный индекс меньше -1.

Примеры

В следующем примере показано, как использовать EditIndex свойство , чтобы определить, какая строка была обновлена после ее изменения в элементе GridView управления . Появится сообщение об успешном обновлении.


<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  
  void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {
    
    // Clear the message label when the user enters edit mode.
    if (e.CommandName == "Edit")
    {
      Message.Text = "";
    }
    
  }

  void CustomersGridView_RowUpdated(Object sender, GridViewUpdatedEventArgs e)
    {
   
        // The update operation was successful. Retrieve the row being edited.
        int index = CustomersGridView.EditIndex;
        GridViewRow row = CustomersGridView.Rows[index];
        
        // Notify the user that the update was successful.
        Message.Text = "Updated record " + row.Cells[1].Text + ".";
    
    }

  void CustomersGridView_RowCancelingEdit(Object sender, GridViewCancelEditEventArgs e)
    {
   
        // The update operation was canceled. Display the appropriate message.
        Message.Text = "Update operation canceled.";
    
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridView Rows Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridView Rows Example</h3>
            
      <asp:label id="Message"
        forecolor="Red"
        runat="server"/>
                
      <br/>    
            
      <!-- The GridView control automatically sets the columns     -->
      <!-- specified in the datakeynames property as read-only.    -->
      <!-- No input controls are rendered for these columns in     -->
      <!-- edit mode.                                              -->
      <asp:gridview id="CustomersGridView"
        allowpaging="true" 
        datasourceid="CustomersSqlDataSource" 
        autogeneratecolumns="true"
        autogenerateeditbutton="true"
        datakeynames="CustomerID"
        onrowcommand="CustomersGridView_RowCommand"
        onrowupdated="CustomersGridView_RowUpdated"
        onrowcancelingedit="CustomersGridView_RowCancelingEdit"  
        runat="server">
      </asp:gridview>
            
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="CustomersSqlDataSource"  
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID = @CustomerID)"
        deletecommand="Delete from Customers where CustomerID = @CustomerID"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>

Комментарии

Индекс строки отсчитывается от нуля (первая строка равна нулю).

Это свойство обычно используется только в следующих сценариях, в которых используются обработчики для определенных событий:

  • Вы хотите GridView , чтобы элемент управления открывался в режиме редактирования для определенной строки при первом отображении страницы. Для этого можно задать EditIndex свойство в обработчике Load для события Page класса или GridView элемента управления .

  • Вы хотите узнать, какая строка была изменена после обновления строки. Для этого можно получить индекс строки из EditIndex свойства в обработчике RowUpdated событий.

  • Элемент управления привязываются GridView к источнику данных путем установки DataSource свойства программным способом. В этом случае необходимо задать EditIndex свойство в RowEditing обработчиках событий и RowCancelingEdit .

Если задать EditIndex свойство после обратной передачи или в обработчиках для событий, которые возникают позже Load события, GridView элемент управления может не перейти в режим редактирования для указанной строки. Если вы считываете значение этого свойства в других обработчиках событий, индекс не будет гарантированно отражать редактируемую строку.

Чтобы определить, в какой строке пользователь нажал кнопку "Изменить" или гиперссылку перед переходом GridView элемента управления в режим редактирования, можно получить индекс строки из NewEditIndex свойства GridViewEditEventArgs объекта в обработчике RowEditing событий.

Чтобы запретить переход элемента управления в GridView режим редактирования после нажатия пользователем кнопки "Изменить" или гиперссылки, задайте свойству CancelGridViewEditEventArgs объекта значение true в обработчике RowEditing событий.

Применяется к

Продукт Версии
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

См. также раздел