FormView.InsertItem(Boolean) Metodo

Definizione

Inserisce il record corrente nell'origine dati.

public:
 virtual void InsertItem(bool causesValidation);
public virtual void InsertItem (bool causesValidation);
abstract member InsertItem : bool -> unit
override this.InsertItem : bool -> unit
Public Overridable Sub InsertItem (causesValidation As Boolean)

Parametri

causesValidation
Boolean

true per eseguire la convalida della pagina quando viene chiamato il metodo; in caso contrario, false.

Eccezioni

Questo metodo viene chiamato quando il controllo FormView non è in modalità di inserimento.

-oppure-

L'oggetto DataSourceView associato al controllo FormView è null.

Esempio

Nell'esempio seguente viene illustrato come utilizzare il metodo per inserire a InsertItem livello di codice il record corrente in un FormView controllo nell'origine dati.


<%@ 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 InsertButton_Click(Object sender, EventArgs e)
  {

    try
    {
      // Use the InsertItem method to programmatically insert
      // the current record in the FormView control. 
      EmployeeFormView.InsertItem(true);
      MessageLabel.Text = "";
    }
    catch (HttpException ex)
    {
      MessageLabel.Text = "The FormView control must be in insert mode to insert a record.";
    }

  }

  void CancelButton_Click(Object sender, EventArgs e)
  {
    
    // Return the FormView control to read-only
    // mode.
    EmployeeFormView.ChangeMode(FormViewMode.ReadOnly);
    MessageLabel.Text = "";

  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>FormView InsertItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>FormView InsertItem Example</h3>
                       
      <asp:formview id="EmployeeFormView"
        datasourceid="EmployeeSource"
        allowpaging="true"
        datakeynames="EmployeeID"
        emptydatatext="No employees found."
        runat="server">

        <itemtemplate>
          <table>
            <tr>
              <td rowspan="5">
                <asp:image id="CompanyLogoImage"
                  imageurl="~/Images/Logo.jpg"
                  alternatetext="Company logo"
                  runat="server"/>
              </td>
              <td colspan="2">
                    
              </td>
            </tr>
            <tr>
              <td>
                <b>Name:</b>
              </td>
              <td>
                <%# Eval("FirstName") %> <%# Eval("LastName") %>
              </td>
            </tr>
            <tr>
              <td>
                <b>Title:</b>
              </td>
              <td>
                <%# Eval("Title") %>
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:linkbutton id="NewButton"
                  text="New"
                  commandname="New"
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </itemtemplate>
        <insertitemtemplate>
          <table>
            <tr>
              <td rowspan="4">
                <asp:image id="CompanyLogoEditImage"
                  imageurl="~/Images/Logo.jpg"
                  alternatetext="Company logo"
                  runat="server"/>
              </td>
              <td colspan="2">
                    
              </td>
            </tr>
            <tr>
              <td>
                <b><asp:Label runat="server" 
                  AssociatedControlID="FirstNameInsertTextBox" 
                  Text="Name" />:</b>
              </td>
              <td>
                <asp:textbox id="FirstNameInsertTextBox"
                  text='<%# Bind("FirstName") %>'
                  runat="server"/>
                <asp:textbox id="LastNameInsertTextBox"
                  text='<%# Bind("LastName") %>'
                  runat="server"/>
              </td>
            </tr>
            <tr>
              <td>
                <b><asp:Label runat="server" 
                  AssociatedControlID="TitleInsertTextBox" 
                  Text="Title" />:</b>
              </td>
              <td>
                <asp:textbox id="TitleInsertTextBox"
                  text='<%# Bind("Title") %>'
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </insertitemtemplate> 
                  
      </asp:formview>
      
      <hr/>
      
      <asp:Button id="InsertButton"
        text="Insert Record"
        onclick="InsertButton_Click" 
        runat="server"/>
        
      <asp:Button id="CancelButton"
        text="Cancel"
        onclick="CancelButton_Click" 
        runat="server"/>
        
      <br/><br/>
      
      <asp:label id="MessageLabel"
        forecolor="Red"
        runat="server"/>
     
      <!-- 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="EmployeeSource"
        selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [PhotoPath] From [Employees]"
        insertcommand="Insert Into [Employees] ([LastName], [FirstName], [Title]) VALUES (@LastName, @FirstName, @Title)"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
            
    </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 InsertButton_Click(ByVal sender As Object, ByVal e As EventArgs)

    Try
    
      ' Use the InsertItem method to programmatically insert
      ' the current record in the FormView control. 
      EmployeeFormView.InsertItem(True)
      MessageLabel.Text = ""
    
    Catch ex As HttpException
    
      MessageLabel.Text = "The FormView control must be in insert mode to insert a record."
    
    End Try

  End Sub

  Sub CancelButton_Click(ByVal sender As Object, ByVal e As EventArgs)
    
    ' Return the FormView control to read-only
    ' mode.
    EmployeeFormView.ChangeMode(FormViewMode.ReadOnly)
    MessageLabel.Text = ""

  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>FormView InsertItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>FormView InsertItem Example</h3>
                       
      <asp:formview id="EmployeeFormView"
        datasourceid="EmployeeSource"
        allowpaging="true"
        datakeynames="EmployeeID"
        emptydatatext="No employees found."
        runat="server">

        <itemtemplate>
          <table>
            <tr>
              <td rowspan="5">
                <asp:image id="CompanyLogoImage"
                  imageurl="~/Images/Logo.jpg"
                  alternatetext="Company logo"
                  runat="server"/>
              </td>
              <td colspan="2">
                    
              </td>
            </tr>
            <tr>
              <td>
                <b>Name:</b>
              </td>
              <td>
                <%# Eval("FirstName") %> <%# Eval("LastName") %>
              </td>
            </tr>
            <tr>
              <td>
                <b>Title:</b>
              </td>
              <td>
                <%# Eval("Title") %>
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:linkbutton id="NewButton"
                  text="New"
                  commandname="New"
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </itemtemplate>
        <insertitemtemplate>
          <table>
            <tr>
              <td rowspan="4">
                <asp:image id="CompanyLogoEditImage"
                  imageurl="~/Images/Logo.jpg"
                  alternatetext="Company logo"
                  runat="server"/>
              </td>
              <td colspan="2">
                    
              </td>
            </tr>
            <tr>
              <td>
                <b><asp:Label runat="server" 
                  AssociatedControlID="FirstNameInsertTextBox" 
                  Text="Name" />:</b>
              </td>
              <td>
                <asp:textbox id="FirstNameInsertTextBox"
                  text='<%# Bind("FirstName") %>'
                  runat="server"/>
                <asp:textbox id="LastNameInsertTextBox"
                  text='<%# Bind("LastName") %>'
                  runat="server"/>
              </td>
            </tr>
            <tr>
              <td>
                <b><asp:Label runat="server" 
                  AssociatedControlID="TitleInsertTextBox" 
                  Text="Title" />:</b>
              </td>
              <td>
                <asp:textbox id="TitleInsertTextBox"
                  text='<%# Bind("Title") %>'
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </insertitemtemplate> 
                  
      </asp:formview>
      
      <hr/>
      
      <asp:Button id="InsertButton"
        text="Insert Record"
        onclick="InsertButton_Click" 
        runat="server"/>
        
      <asp:Button id="CancelButton"
        text="Cancel"
        onclick="CancelButton_Click" 
        runat="server"/>
        
      <br/><br/>
      
      <asp:label id="MessageLabel"
        forecolor="Red"
        runat="server"/>
     
      <!-- 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="EmployeeSource"
        selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [PhotoPath] From [Employees]"
        insertcommand="Insert Into [Employees] ([LastName], [FirstName], [Title]) VALUES (@LastName, @FirstName, @Title)"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
            
    </form>
  </body>
</html>

Commenti

Quando il FormView controllo è in modalità di inserimento, utilizzare il InsertItem metodo per inserire a livello di codice il record corrente nell'origine dati. Questo metodo viene comunemente usato quando è necessario inserire il record corrente dall'esterno del FormView controllo, ad esempio da un controllo diverso nella pagina.

Nota

Il FormView controllo deve essere in modalità di inserimento quando viene chiamato questo metodo; in caso contrario, viene generata un'eccezione HttpException .

Per specificare se la convalida della pagina viene eseguita prima dell'operazione di inserimento, usare il causesValidation parametro . La chiamata a questo metodo genera anche gli ItemInserted eventi e ItemInserting .

Si applica a

Vedi anche