GridView.UpdateRow(Int32, Boolean) Metod

Definition

Uppdaterar posten vid det angivna radindexet med hjälp av radens fältvärden.

public:
 virtual void UpdateRow(int rowIndex, bool causesValidation);
public virtual void UpdateRow(int rowIndex, bool causesValidation);
abstract member UpdateRow : int * bool -> unit
override this.UpdateRow : int * bool -> unit
Public Overridable Sub UpdateRow (rowIndex As Integer, causesValidation As Boolean)

Parametrar

rowIndex
Int32

Indexet för raden som ska uppdateras.

causesValidation
Boolean

trueför att utföra sidverifiering när den här metoden anropas; annars . false

Undantag

Kontrollen GridView är bunden till en datakällakontroll, men den DataSourceView som är associerad med datakällan är null.

Exempel

I följande exempel visas hur du använder UpdateRow metoden för att programmatiskt uppdatera en post i en GridView kontroll.


<%@ 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 UpdateRowButton_Click(Object sender, EventArgs e)
  {
    // Programmatically update the current record in edit mode.
    CustomersGridView.UpdateRow(CustomersGridView.EditIndex, true);
  }

  void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {
    // Enable the UpdateRowButton button only when the GridView control
    // is in edit mode.
    switch (e.CommandName)
    {
      case "Edit":
        UpdateRowButton.Enabled = true;
        break;
      case "Cancel":
        UpdateRowButton.Enabled = false;
        break;
      case "Update":
        UpdateRowButton.Enabled = false;
        break;
      default:
        UpdateRowButton.Enabled = false;
        break;
    }
  }
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridView UpdateRow Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridView UpdateRow Example</h3>
      
      <asp:button id="UpdateRowButton"
        text="Update Record"
        enabled="false"
        onclick="UpdateRowButton_Click" 
        runat="server"/>
        
      <hr/>

      <!-- 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"   
        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)"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>

<%@ Page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Sub UpdateRowButton_Click(ByVal sender As Object, ByVal e As EventArgs)
      
    ' Programmatically update the current record in edit mode.
    CustomersGridView.UpdateRow(CustomersGridView.EditIndex, True)
    
  End Sub

  Sub CustomersGridView_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)
  
    ' Enable the UpdateRowButton button only when the GridView control
    ' is in edit mode.
    Select Case e.CommandName
    
      Case "Edit"
        UpdateRowButton.Enabled = True
      Case "Cancel"
        UpdateRowButton.Enabled = False
      Case "Update"
        UpdateRowButton.Enabled = False
      Case Else
        UpdateRowButton.Enabled = False
    
    End Select
    
  End Sub
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridView UpdateRow Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridView UpdateRow Example</h3>
      
      <asp:button id="UpdateRowButton"
        text="Update Record"
        enabled="false"
        onclick="UpdateRowButton_Click" 
        runat="server"/>
        
      <hr/>

      <!-- 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"   
        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)"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>

Kommentarer

UpdateRow Använd metoden för att programmatiskt uppdatera posten vid det angivna indexet i datakällan. Den här metoden används ofta när du behöver uppdatera en post utanför GridView kontrollen, till exempel från en annan kontroll på sidan.

Note

Den här metoden kan bara anropas för raden som för närvarande är i redigeringsläge eller för en rad som innehåller en dubbelriktad databunden indatakontroll. Mer information om tvåvägsbindningsuttryck finns i Bindning till databaser.

Om du vill ange om sidvalidering ska utföras före uppdateringsåtgärden använder du parametern causesValidation . Om du anropar den här metoden genereras RowUpdated även händelserna och RowUpdating .

Gäller för

Se även