GridView.UpdateRow(Int32, Boolean) メソッド

定義

行のフィールド値を使用して、指定した行インデックス位置にあるレコードを更新します。

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)

パラメーター

rowIndex
Int32

更新する行のインデックス。

causesValidation
Boolean

このメソッドが呼び出されたときにページの検証を実行する場合は true。それ以外の場合は false

例外

GridView コントロールはデータ ソース コントロールにバインドされていますが、データ ソースに関連付けられている DataSourceViewnull です。

次の例では、 メソッドを使用して、コントロール内の UpdateRow レコードをプログラムで更新する方法を 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 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>

注釈

データ ソース内の UpdateRow 指定したインデックス位置にあるレコードをプログラムで更新するには、 メソッドを使用します。 このメソッドは、ページ上の別のコントロールなど、コントロールの GridView 外部からレコードを更新する必要がある場合に一般的に使用されます。

Note

このメソッドは、現在編集モードの行、または双方向データ バインド入力コントロールを含む行に対してのみ呼び出すことができます。 双方向バインディング式の詳細については、「 データベースへのバインド」を参照してください。

更新操作の前にページ検証を実行するかどうかを指定するには、 パラメーターを causesValidation 使用します。 このメソッドを呼び出すと、 RowUpdated イベントと RowUpdating イベントも発生します。

適用対象

こちらもご覧ください