Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

TemplateField.InsertItemTemplate-Eigenschaft

Hinweis: Diese Eigenschaft ist neu in .NET Framework, Version 2.0.

Ruft die Vorlage ab, mit der ein Element im Einfügemodus in einem TemplateField-Objekt angezeigt wird, oder legt diese Vorlage fest.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

[TemplateContainerAttribute(typeof(IDataItemContainer), BindingDirection.TwoWay)] 
public virtual ITemplate InsertItemTemplate { get; set; }
/** @property */
public ITemplate get_InsertItemTemplate ()

/** @property */
public void set_InsertItemTemplate (ITemplate value)

public function get InsertItemTemplate () : ITemplate

public function set InsertItemTemplate (value : ITemplate)

Eigenschaftenwert

Ein in System.Web.UI.ITemplate implementiertes Objekt, das die Vorlage zum Anzeigen eines Elements im Einfügemodus in TemplateField enthält. Der Standardwert ist NULL (Nothing in Visual Basic) und gibt an, dass diese Eigenschaft nicht festgelegt ist.

Verwenden Sie die InsertItemTemplate-Eigenschaft, um den benutzerdefinierten Inhalt anzugeben, der für ein Element im Einfügemodus in einem TemplateField-Objekt angezeigt wird. Definieren Sie den Inhalt, indem Sie eine Vorlage erstellen, die angibt, wie das Element im Einfügemodus wiedergegeben wird.

Platzieren Sie zum Angeben einer Vorlage zunächst öffnende und schließende <InsertItemTemplate>-Tags zwischen den Anfangs- und Endtags des <TemplateField>-Elements. Anschließend fügen Sie den benutzerdefinierten Inhalt zwischen den Anfangs- und End-<InsertItemTemplate>-Tags hinzu. Bei dem Inhalt kann es sich um einfachen Text handeln, er kann aber auch in komplexerer Form vorliegen (beispielsweise, wenn weitere Steuerelemente in die Vorlage eingebettet werden).

Bestimmen Sie zunächst, welches TableCell-Objekt im datengebundenen Steuerelement das Steuerelement enthält, um programmgesteuert auf ein in einer Vorlage definiertes Steuerelement zuzugreifen. Greifen Sie anschließend über die Controls-Auflistung des TableCell-Objekts auf das Steuerelement zu. Sie können auch die FindControl-Methode des TableCell-Objekts zum Suchen des Steuerelements verwenden, wenn das Steuerelement über eine ID verfügt.

HinweisHinweis

Diese Vorlage wird nicht von allen datengebundenen Steuerelementen unterstützt, sondern nur von solchen, mit denen ein Datensatz eingefügt werden kann (z. B. das DetailsView-Steuerelement).

Im folgenden Codebeispiel wird veranschaulicht, wie mit der InsertItemTemplate-Eigenschaft eine benutzerdefinierte Vorlage für ein Element im Einfügemodus in einer TemplateField-Feldzeile eines DetailsView-Steuerelements erstellt wird. In der Vorlage wird ein DropDownList-Steuerelement angezeigt, mit dem der Benutzer einen Wert aus einer vordefinierten Liste auswählen kann.


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

<script runat="server">

  void StoresGridView_SelectedIndexChanged(Object sender, EventArgs e)
  {
    // Set the DataItemIndex property of the DetailsView control to display
    // the record selected from the GridView control.
   // StoresDetailView.DataItemIndex = StoresGridView.SelectedIndex;
  }
  
  void StoresDetailView_ItemInserting(Object sender, DetailsViewInsertEventArgs e)
  {
    // Get the state value from the DropDownList control in the 
    // DetailsView control.
    String state = GetState(); 
    
    // Add the state to the dictionary of values to 
    // insert into the database.
    e.Values["state"] = state;
  }
  
  void StoresDetailView_ItemInserted (Object sender, DetailsViewInsertedEventArgs e)
  {
    // Refresh the GridView control after a new record is inserted.
    StoresGridView.DataBind ();
  }
  
  String GetState()
  {
    String state;
    
    // Get the DropDownList control that contains the state value
    // in the DetailsView control.
    DropDownList list = (DropDownList)StoresDetailView.Rows[4].FindControl("StateList");
    
    if (list != null)
    {
      // Get the selected value of the DropDownList control.
      state = list.SelectedItem.Text;
    }
    else
    {
      // Set the state to an empty string ("").
      state = "";
    }
    
    return state;
  }

</script>

<html>
  <body>
    <form runat="server">
        
      <h3>TemplateField InsertItemTemplate Example</h3>

        <table cellspacing="10">
            
          <tr>
              
            <td>
                
              <asp:gridview id="StoresGridView" 
                datasourceid="StoresSqlDataSource" 
                autogeneratecolumns="false"
                autogenerateselectbutton="true"
                datakeynames="stor_id"
                onselectedindexchanged="StoresGridView_SelectedIndexChanged"   
                runat="server">
                
                <headerstyle backcolor="Blue"
                  forecolor="White"/>
                
                <columns>
                
                  <asp:boundfield datafield="stor_name"
                    headertext="Store Name"/>
                    
                  <asp:boundfield datafield="stor_address"
                    headertext="Address"/>
                    
                  <asp:boundfield datafield="city"
                    headertext="City"/>
                        
                  <asp:boundfield datafield="state"
                    headertext="State"/>
                    
                  <asp:boundfield datafield="zip"
                    headertext="ZIP Code"/>
                    
                </columns>
                
              </asp:gridview>
            
            </td>
                
            <td valign="top">
                
              <asp:detailsview id="StoresDetailView"
                datasourceid="StoresDetailsSqlDataSource"
                autogenerateinsertbutton="true"
                autogeneraterows="false" 
                datakeynames="stor_id"        
                gridlines="Both"
                oniteminserting="StoresDetailView_ItemInserting"
                oniteminserted="StoresDetailView_ItemInserted"    
                runat="server">
                
                <headerStyle backcolor="Navy"
                  forecolor="White"/>
                  <Fields>               
                  
                  <asp:boundfield datafield="stor_id"
                    headertext="Store ID"/>
                    
                  <asp:boundfield datafield="stor_name"
                    headertext="Store Name"/>
                    
                  <asp:boundfield datafield="stor_address"
                    headertext="Address"/>
                    
                  <asp:boundfield datafield="city"
                    headertext="City"/>
                        
                  <asp:templatefield headertext="State">
                    <itemtemplate>
                      <%#Eval("state")%>
                    </itemtemplate>
                    <insertitemtemplate>
                      <asp:dropdownlist id="StateList"
                        datasourceid="StateSqlDataSource"
                        datatextfield="state" 
                        runat="server"/>
                    </insertitemtemplate>
                  </asp:templatefield>
                    
                  <asp:boundfield datafield="zip"
                    headertext="ZIP Code"/>
                    
                </Fields>                    
              </asp:detailsview>
            
            </td>
                
          </tr>
            
        </table>
            
        <!-- This example uses Microsoft SQL Server and connects -->
        <!-- to the Pubs sample database.                        -->
        <asp:sqldatasource id="StoresSqlDataSource"  
          selectcommand="SELECT [stor_id], [stor_name], [stor_address], [city], [state], [zip] FROM [stores]" 
          connectionstring="server=localhost;database=pubs;integrated security=SSPI"
          runat="server">
        </asp:sqldatasource>
            
        <asp:sqldatasource id="StoresDetailsSqlDataSource"  
          selectcommand="SELECT [stor_id], [stor_name], [stor_address], [city], [state], [zip] FROM [stores]"
          insertcommand="INSERT INTO stores([stor_id], [stor_name], [stor_address], [city], [state], [zip]) VALUES (@stor_id, @stor_name, @stor_address, @city, @state, @zip)" 
          connectionstring="server=localhost;database=pubs;integrated security=SSPI"
          runat="server">
        </asp:sqldatasource>
        
        <!-- For this example, the states are retrieved from the  -->
        <!-- state field. For your application, you should use a  -->
        <!-- more complete source for the state values.           -->
        <asp:sqldatasource id="StateSqlDataSource"  
          selectcommand="SELECT Distinct [state] FROM [stores]"
          connectionstring="server=localhost;database=pubs;integrated security=SSPI"
          runat="server">
        </asp:sqldatasource>
            
      </form>
  </body>
</html>


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0
Anzeigen: