IBindableTemplate Interfaccia

Definizione

Consente ai controlli con associazione a dati ASP.NET, ad esempio DetailsView e FormView, di stabilire un'associazione automatica a un controllo origine dati ASP.NET all'interno di sezioni di contenuto basato su modelli.Provides a way for ASP.NET data-bound controls, such as DetailsView and FormView, to automatically bind to an ASP.NET data source control within templated content sections.

public interface class IBindableTemplate : System::Web::UI::ITemplate
public interface IBindableTemplate : System.Web.UI.ITemplate
type IBindableTemplate = interface
    interface ITemplate
Public Interface IBindableTemplate
Implements ITemplate
Derivato
Implementazioni

Esempi

Nell'esempio di codice seguente viene illustrato FormView il modo in cui un controllo può definire in modo dichiarativo il contenuto SqlDataSource basato su modelli, associare ai dati forniti da un controllo e visualizzare e modificare i record esistenti.The following code example demonstrates how a FormView control can declaratively define templated content, bind to data provided by a SqlDataSource control, and display and edit existing records. Il parser ASP.NET analizza il contenuto basato su modelli e crea un IBindableTemplate oggetto in fase di esecuzione che è in grado di associare i SqlDataSource valori del controllo alle aree di data binding definite nel modello dalla sintassi di associazione dati ASP.NET unidirezionale (<%# Eval("fieldname") %>) e la sintassi di associazione dati bidirezionale (<%# Bind("fieldname") %>).The ASP.NET parser parses the templated content and creates an IBindableTemplate object at run time that is able to bind values from the SqlDataSource control to the data-binding areas defined in the template by both one-way ASP.NET data-binding syntax (<%# Eval("fieldname") %>) and two-way data-binding syntax (<%# Bind("fieldname") %>).

Importante

Questo controllo include una casella di testo che accetta l'input dell'utente, che rappresenta una potenziale minaccia per la sicurezza.This control has a text box that accepts user input, which is a potential security threat. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Per altre informazioni, vedere Cenni preliminari sugli attacchi tramite script.For more information, see Script Exploits Overview.


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

    // Validate the field values entered by the user. This
    // example determines whether the user left any fields
    // empty. Use the NewValues property to access the new 
    // values entered by the user.
    ArrayList emptyFieldList = ValidateFields(e.NewValues);

    if (emptyFieldList.Count > 0)
    {

      // The user left some fields empty. Display an error message.
      
      // Use the Keys property to retrieve the key field value.
      String keyValue = e.Keys["EmployeeID"].ToString();

      MessageLabel.Text = "You must enter a value for each field of record " +
        keyValue + ".<br/>The following fields are missing:<br/><br/>";

      // Display the missing fields.
      foreach (String value in emptyFieldList)
      {
        // Use the OldValues property to access the original value
        // of a field.
        MessageLabel.Text += value + " - Original Value = " + 
          e.OldValues[value].ToString() + "<br />";
      }

      // Cancel the update operation.
      e.Cancel = true;

    }
    else
    {
      // The field values passed validation. Clear the
      // error message label.
      MessageLabel.Text = "";
    }

  }

  ArrayList ValidateFields(IOrderedDictionary list)
  {
    
    // Create an ArrayList object to store the
    // names of any empty fields.
    ArrayList emptyFieldList = new ArrayList();

    // Iterate though the field values entered by
    // the user and check for an empty field. Empty
    // fields contain a null value.
    foreach (DictionaryEntry entry in list)
    {
      if (entry.Value == String.Empty)
      {
        // Add the field name to the ArrayList object.
        emptyFieldList.Add(entry.Key.ToString());
      }
    }

    return emptyFieldList;
  }

  void EmployeeFormView_ModeChanging(Object sender, FormViewModeEventArgs e)
  {
    if (e.CancelingEdit)
    {
      // The user canceled the update operation.
      // Clear the error message label.
      MessageLabel.Text = "";
    }
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>FormView Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>FormView Example</h3>
                       
      <asp:formview id="EmployeeFormView"
        datasourceid="EmployeeSource"
        allowpaging="true"
        datakeynames="EmployeeID"
        headertext="Employee Record"
        emptydatatext="No employees found."
        onitemupdating="EmployeeFormView_ItemUpdating"
        onmodechanging="EmployeeFormView_ModeChanging"  
        runat="server">
        
        <headerstyle backcolor="CornFlowerBlue"
          forecolor="White"
          font-size="14"
          horizontalalign="Center"  
          wrap="false"/>
        <rowstyle backcolor="LightBlue"
          wrap="false"/>
        <pagerstyle backcolor="CornFlowerBlue"/>

        <itemtemplate>
          <table>
            <tr>
              <td rowspan="6">
                <asp:image id="EmployeeImage"
                  imageurl='<%# Eval("PhotoPath") %>'
                  alternatetext='<%# Eval("LastName") %>' 
                  runat="server"/>
              </td>
              <td colspan="2">
                  &nbsp; 
              </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>
                <b>Hire Date:</b>                 
              </td>
              <td>
                <%# Eval("HireDate","{0:d}") %>
              </td>
            </tr>
            <tr style="height:150; vertical-align:top">
              <td>
                <b>Address:</b>
              </td>
              <td>
                <%# Eval("Address") %><br/>
                <%# Eval("City") %> <%# Eval("Region") %>
                <%# Eval("PostalCode") %><br/>
                <%# Eval("Country") %>   
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:linkbutton id="Edit"
                  text="Edit"
                  commandname="Edit"
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </itemtemplate>
        <edititemtemplate>
          <table>
            <tr>
              <td rowspan="6">
                <asp:image id="EmployeeEditImage"
                  imageurl='<%# Eval("PhotoPath") %>'
                  alternatetext='<%# Eval("LastName") %>' 
                  runat="server"/>
              </td>
              <td colspan="2">
                  &nbsp; 
              </td>
            </tr>
            <tr>
              <td>
                <b>Name:</b>
              </td>
              <td>
                <asp:textbox id="FirstNameUpdateTextBox"
                  text='<%# Bind("FirstName") %>'
                  runat="server"/>
                <asp:textbox id="LastNameUpdateTextBox"
                  text='<%# Bind("LastName") %>'
                  runat="server"/>
              </td>
            </tr>
            <tr>
              <td>
                <b>Title:</b>
              </td>
              <td>
                <asp:textbox id="TitleUpdateTextBox"
                  text='<%# Bind("Title") %>'
                  runat="server"/> 
              </td>
            </tr>
            <tr>
              <td>
                <b>Hire Date:</b>                 
              </td>
              <td>
                <asp:textbox id="HireDateUpdateTextBox"
                  text='<%# Bind("HireDate", "{0:d}") %>'
                  runat="server"/>
              </td>
            </tr>
            <tr style="height:150; vertical-align:top">
              <td>
                <b>Address:</b>
              </td>
              <td>
                <asp:textbox id="AddressUpdateTextBox"
                  text='<%# Bind("Address") %>'
                  runat="server"/>
                <br/>
                <asp:textbox id="CityUpdateTextBox"
                  text='<%# Bind("City") %>'
                  runat="server"/> 
                <asp:textbox id="RegionUpdateTextBox"
                  text='<%# Bind("Region") %>'
                  width="40"
                  runat="server"/>
                <asp:textbox id="PostalCodeUpdateTextBox"
                  text='<%# Bind("PostalCode") %>'
                  width="60"
                  runat="server"/>
                <br/>
                <asp:textbox id="CountryUpdateTextBox"
                  text='<%# Bind("Country") %>'
                  runat="server"/> 
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:linkbutton id="UpdateButton"
                  text="Update"
                  commandname="Update"
                  runat="server"/>
                <asp:linkbutton id="CancelButton"
                  text="Cancel"
                  commandname="Cancel"
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </edititemtemplate>
          
        <pagersettings position="Bottom"
          mode="Numeric"/> 
                  
      </asp:formview>
      
      <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], [Address], [City], [Region], [PostalCode], [Country], [HireDate], [PhotoPath] From [Employees]"
        updatecommand="Update [Employees] Set [LastName]=@LastName, [FirstName]=@FirstName, [Title]=@Title, [Address]=@Address, [City]=@City, [Region]=@Region, [PostalCode]=@PostalCode, [Country]=@Country Where [EmployeeID]=@EmployeeID"
        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 EmployeeFormView_ItemUpdating(ByVal sender As Object, ByVal e As FormViewUpdateEventArgs) Handles EmployeeFormView.ItemUpdating
  
    ' Validate the field values entered by the user. This
    ' example determines whether the user left any fields
    ' empty. Use the NewValues property to access the new 
    ' values entered by the user.
        Dim emptyFieldList As ArrayList = ValidateFields(e.NewValues)

    If emptyFieldList.Count > 0 Then

      ' The user left some fields empty. Display an error message.
      
      ' Use the Keys property to retrieve the key field value.
      Dim keyValue As String = e.Keys("EmployeeID").ToString()

      MessageLabel.Text = "You must enter a value for each field of record " & _
        keyValue & ".<br/>The following fields are missing:<br/><br/>"

      ' Display the missing fields.
      Dim value As String
      For Each value In emptyFieldList
      
        ' Use the OldValues property to access the original value
        ' of a field.
        MessageLabel.Text &= value & " - Original Value = " & _
          e.OldValues(value).ToString() & "<br />"
        
      Next

      ' Cancel the update operation.
      e.Cancel = True

    Else
    
      ' The field values passed validation. Clear the
      ' error message label.
      MessageLabel.Text = ""
      
    End If

  End Sub

  Function ValidateFields(ByVal list As IOrderedDictionary) As ArrayList
    
    ' Create an ArrayList object to store the
    ' names of any empty fields.
    Dim emptyFieldList As New ArrayList()

    ' Iterate though the field values entered by
    ' the user and check for an empty field. Empty
    ' fields contain a null value.
    Dim entry As DictionaryEntry
    
    For Each entry In list
    
      If entry.Value Is String.Empty Then
      
        ' Add the field name to the ArrayList object.
        emptyFieldList.Add(entry.Key.ToString())
        
      End If
      
    Next

    Return emptyFieldList
  
  End Function
  
  Sub EmployeeFormView_ModeChanging(ByVal sender As Object, ByVal e As FormViewModeEventArgs) Handles EmployeeFormView.ModeChanging
  
    If e.CancelingEdit Then
      
      ' The user canceled the update operation.
      ' Clear the error message label.
      MessageLabel.Text = ""
    
    End If
    
  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>FormView Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>FormView Example</h3>
                       
      <asp:formview id="EmployeeFormView"
        datasourceid="EmployeeSource"
        allowpaging="true"
        datakeynames="EmployeeID"
        headertext="Employee Record"
        emptydatatext="No employees found."
        runat="server">
        
        <headerstyle backcolor="CornFlowerBlue"
          forecolor="White"
          font-size="14"
          horizontalalign="Center"  
          wrap="false"/>
        <rowstyle backcolor="LightBlue"
          wrap="false"/>
        <pagerstyle backcolor="CornFlowerBlue"/>

        <itemtemplate>
          <table>
            <tr>
              <td rowspan="6">
                <asp:image id="EmployeeImage"
                  imageurl='<%# Eval("PhotoPath") %>'
                  alternatetext='<%# Eval("LastName") %>' 
                  runat="server"/>
              </td>
              <td colspan="2">
                  &nbsp; 
              </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>
                <b>Hire Date:</b>                 
              </td>
              <td>
                <%# Eval("HireDate","{0:d}") %>
              </td>
            </tr>
            <tr style="height:150; vertical-align:top">
              <td>
                <b>Address:</b>
              </td>
              <td>
                <%# Eval("Address") %><br/>
                <%# Eval("City") %> <%# Eval("Region") %>
                <%# Eval("PostalCode") %><br/>
                <%# Eval("Country") %>   
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:linkbutton id="Edit"
                  text="Edit"
                  commandname="Edit"
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </itemtemplate>
        <edititemtemplate>
          <table>
            <tr>
              <td rowspan="6">
                <asp:image id="EmployeeEditImage"
                  imageurl='<%# Eval("PhotoPath") %>'
                  alternatetext='<%# Eval("LastName") %>' 
                  runat="server"/>
              </td>
              <td colspan="2">
                  &nbsp; 
              </td>
            </tr>
            <tr>
              <td>
                <b>Name:</b>
              </td>
              <td>
                <asp:textbox id="FirstNameUpdateTextBox"
                  text='<%# Bind("FirstName") %>'
                  runat="server"/>
                <asp:textbox id="LastNameUpdateTextBox"
                  text='<%# Bind("LastName") %>'
                  runat="server"/>
              </td>
            </tr>
            <tr>
              <td>
                <b>Title:</b>
              </td>
              <td>
                <asp:textbox id="TitleUpdateTextBox"
                  text='<%# Bind("Title") %>'
                  runat="server"/> 
              </td>
            </tr>
            <tr>
              <td>
                <b>Hire Date:</b>                 
              </td>
              <td>
                <asp:textbox id="HireDateUpdateTextBox"
                  text='<%# Bind("HireDate", "{0:d}") %>'
                  runat="server"/>
              </td>
            </tr>
            <tr style="height:150; vertical-align:top">
              <td>
                <b>Address:</b>
              </td>
              <td>
                <asp:textbox id="AddressUpdateTextBox"
                  text='<%# Bind("Address") %>'
                  runat="server"/>
                <br/>
                <asp:textbox id="CityUpdateTextBox"
                  text='<%# Bind("City") %>'
                  runat="server"/> 
                <asp:textbox id="RegionUpdateTextBox"
                  text='<%# Bind("Region") %>'
                  width="40"
                  runat="server"/>
                <asp:textbox id="PostalCodeUpdateTextBox"
                  text='<%# Bind("PostalCode") %>'
                  width="60"
                  runat="server"/>
                <br/>
                <asp:textbox id="CountryUpdateTextBox"
                  text='<%# Bind("Country") %>'
                  runat="server"/> 
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:linkbutton id="UpdateButton"
                  text="Update"
                  commandname="Update"
                  runat="server"/>
                <asp:linkbutton id="CancelButton"
                  text="Cancel"
                  commandname="Cancel"
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </edititemtemplate>
          
        <pagersettings position="Bottom"
          mode="Numeric"/> 
                  
      </asp:formview>
      
      <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], [Address], [City], [Region], [PostalCode], [Country], [HireDate], [PhotoPath] From [Employees]"
        updatecommand="Update [Employees] Set [LastName]=@LastName, [FirstName]=@FirstName, [Title]=@Title, [Address]=@Address, [City]=@City, [Region]=@Region, [PostalCode]=@PostalCode, [Country]=@Country Where [EmployeeID]=@EmployeeID"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
            
    </form>
  </body>
</html>

Commenti

L' IBindableTemplate interfaccia fornisce un modo per ASP.NET i controlli con associazione a dati, DetailsViewad GridViewesempio, FormViewe, per eseguire l'associazione ai ObjectDataSource dati forniti da un controllo origine dati ASP.NET, SqlDataSourcead esempio o, quando il il controllo con associazione a dati include contenuto basato su modelli.The IBindableTemplate interface provides a way for ASP.NET data-bound controls, such as DetailsView, GridView, and FormView, to bind to data supplied by an ASP.NET data source control, such as ObjectDataSource or SqlDataSource, when the data-bound control includes templated content.

Nota

Gli sviluppatori di pagine non implementano l' IBindableTemplate interfaccia.Page developers do not implement the IBindableTemplate interface. Gli sviluppatori che creano controlli con associazione a dati IBindableTemplate personalizzati potrebbero modificare gli oggetti nelle PerformDataBinding implementazioni dei IBindableTemplate metodi e ExtractRowValues , ma non implementare i propri oggetti.Developers creating custom data-bound controls might manipulate IBindableTemplate objects in implementations of the PerformDataBinding and ExtractRowValues methods, but do not implement their own IBindableTemplate objects.

I controlli associati a dati come GridView in genere sono in grado di riconoscere gli alberi del controllo figlio e possono quindi associare i valori, estrarre i valori da essi e passare questi valori tra il controllo con associazione a dati e un controllo origine dati ogni volta che si verifica data binding .Data-bound controls such as GridView typically are aware of their child control trees, and can therefore bind values to them, extract values from them, and pass these values between the data-bound control and a data source control whenever data binding occurs. Tuttavia, quando uno sviluppatore di pagine definisce contenuto basato su modelli per un controllo con associazione a dati, i controlli figlio all'interno del modello non sono visibili al controllo con associazione a dati padre: l'elemento padre può eseguire il rendering del contenuto figlio (poiché i controlli eseguono il rendering autonomo), non è tuttavia in grado di estrarre i valori di questi controlli figlio da passare a un'operazione di aggiornamento, inserimento o eliminazione di un controllo origine dati associato.However, when a page developer defines templated content for a data-bound control, the child controls within the template are not visible to the parent data-bound control: the parent can render the child content (because controls effectively render themselves), but it cannot extract the values of these child controls to pass to an associated data source control's update, insert, or delete operation. Negli scenari di data binding, il contenuto basato su modelli è opaco per un controllo con associazione a dati padre.In data-binding scenarios, templated content is opaque to a parent data-bound control. La Bind sintassi rende possibile il controllo con associazione a dati per estrarre i valori da un controllo associato a dati all'interno di IBindableTemplate un'istanza di.The Bind syntax makes it possible for the data-bound control to extract the values from a control data-bound inside an IBindableTemplate instance.

Il data binding può essere unidirezionale o bidirezionale.The data binding can be one-way or two-way. Queste direzioni di associazione sono definite dall' BindingDirection enumerazione. Data binding unidirezionale è qualsiasi data binding eseguita in una direzione in uscita, dal controllo origine dati al controllo con associazione a dati. uno scenario di lettura dei dati, ad esempio, implica data binding unidirezionale.(These binding directions are defined by the BindingDirection enumeration.) One-way data binding is any data binding performed in an outbound direction, from data source control to data-bound control; for example, any data-reading scenario involves one-way data binding. Per data binding unidirezionale, è possibile usare la sintassi di data binding unidirezionale (<%# Eval("fieldname") %>) all'interno del contenuto basato su modelli e non è necessario usare la sintassi di associazione dati ASP.NET bidirezionale.For one-way data binding, you can use one-way data binding syntax (<%# Eval("fieldname") %>) inside templated content, and do not need to use two-way ASP.NET data-binding syntax. Il data binding bidirezionale descrive il data binding nella direzione in ingresso, dal controllo con associazione a dati al controllo origine dati.Two-way data-binding describes data-binding in the inbound direction, from the data-bound control to the data source control. Gli scenari di modifica, inserimento ed eliminazione automatici utilizzando i controlli dell'origine dati e associati a dati ASP.NET sono scenari di associazione dati bidirezionali.Automatic edit, insert, and delete scenarios using ASP.NET data-bound and data source controls are two-way data-binding scenarios. Questi scenari usano espressioni di associazione dati bidirezionali (<%# Bind("fieldname") %>).These scenarios use two-way data-binding expressions (<%# Bind("fieldname") %>). L' IBindableTemplate interfaccia e l'infrastruttura ASP.NET supportano la data binding automatica, dichiarativa, bidirezionale tra i controlli origine dati ASP.NET e il contenuto basato su modelli.The IBindableTemplate interface and the ASP.NET infrastructure support automatic, declarative, two-way data binding between ASP.NET data source controls and templated content. Per altre informazioni sulla sintassi e sulle espressioni di associazione dati di ASP.NET, vedere Cenni preliminari sull' associazione ai database e sulle espressioni di associazione dati.For more information about ASP.NET data-binding expressions and syntax, see Binding to Databases and Data-Binding Expressions Overview.

Il contenuto basato su modelli per i controlli associati a dati viene spesso definito in modo dichiarativo.Templated content for data-bound controls is most often defined declaratively. Nella tabella seguente vengono descritti i processi utilizzati più di frequente per associare i dati basati su modelli ai controlli con associazione a dati.The following table describes the processes most commonly used to bind templated data to data-bound controls.

Controllo con associazione a datiData-bound control ProcessProcess
DetailsView Il controllo con associazione a dati è associato ai dati utilizzando DataSourceID la proprietà del controllo origine dati e il contenuto basato su modelli è definito in una ItemTemplateproprietà EditItemTemplate , InsertItemTemplate o.The data-bound control is bound to data using the DataSourceID property of the data source control, and the templated content is defined in an ItemTemplate, EditItemTemplate or InsertItemTemplate property.
GridView Il controllo con associazione a dati è associato ai dati utilizzando DataSourceID la proprietà del controllo origine dati e il contenuto basato su modelli è definito in una ItemTemplate proprietà EditItemTemplate o.The data-bound control is bound to data using the DataSourceID property of the data source control, and the templated content is defined in an ItemTemplate or EditItemTemplate property. Il GridView controllo non supporta un'operazione di inserimento.The GridView control does not support an insert operation.
FormView Il controllo con associazione a dati è associato ai dati tramite DataSourceID la proprietà e il contenuto basato su modelli viene definito in ItemTemplateuna InsertItemTemplateproprietà, EditItemTemplate o o in un TemplateField oggetto.The data-bound control is bound to data using the DataSourceID property, and the templated content is defined in an ItemTemplate, InsertItemTemplate, or EditItemTemplate property, or in a TemplateField object.

I DataList controlli Repeater e non supportano gli scenari di associazione dati bidirezionali automatici.The DataList and Repeater controls do not support automatic two-way data-binding scenarios.

ASP.NET crea in modo implicito un IBindableTemplate oggetto quando viene analizzato il contenuto basato su modelli associato a un controllo origine dati ASP.NET all'interno del modello.ASP.NET implicitly creates an IBindableTemplate object when templated content that binds to an ASP.NET data source control within the template is parsed. In particolare, il parser ASP.NET crea un'istanza della CompiledBindableTemplateBuilder classe quando analizza il contenuto basato su modelli che usa la sintassi di associazione dati ASP.NET e contiene i controlli server Web ASP.NET che supportano data binding.Specifically, the ASP.NET parser creates an instance of the CompiledBindableTemplateBuilder class when it parses templated content that uses ASP.NET data-binding syntax and contains ASP.NET Web server controls that support data binding. Questi controlli server ASP.NET sono contrassegnati dall' BindableAttribute attributo.These ASP.NET sever controls are marked by the BindableAttribute attribute.

L' IBindableTemplate interfaccia definisce un metodo, ExtractValues.The IBindableTemplate interface defines one method, ExtractValues. Questo metodo viene definito per data binding bidirezionale, in modo che un controllo con associazione a dati possa estrarre automaticamente le coppie nome/valore dal contenuto basato su modelli e passare le coppie a un controllo origine dati in fase di esecuzione.This method is defined for two-way data binding, so that a data-bound control can automatically extract name/value pairs from templated content and pass the pairs to a data source control at run time. Affinché il data binding automatico abbia esito positivo, i nomi dei campi estratti dal contenuto basato ExtractValues su modelli dal metodo devono corrispondere ai nomi dei parametri in un controllo origine dati associato.For automatic data binding to succeed, the field names extracted from the templated content by the ExtractValues method must match parameter names in an associated data source control. Gli sviluppatori di controlli ExtractValues chiamano il metodo in modo esplicito solo all' ExtractRowValues interno delle rispettive implementazioni di o di un altro metodo simile a un controllo con associazione a dati personalizzato.Control developers call the ExtractValues method explicitly only within their implementations of ExtractRowValues or some other similar method of a custom data-bound control.

Metodi

ExtractValues(Control)

Quando viene implementato da una classe, recupera un set di coppie nome/valore per i valori associati tramite la sintassi di associazione dati ASP.NET bidirezionale all'interno del contenuto basato su modelli.When implemented by a class, retrieves a set of name/value pairs for values bound using two-way ASP.NET data-binding syntax within the templated content.

InstantiateIn(Control)

Quando viene implementato da una classe, definisce l'oggetto Control al quale appartengono i controlli figlio e i modelli.When implemented by a class, defines the Control object that child controls and templates belong to. I controlli figlio sono a loro volta definiti all'interno di un modello inline.These child controls are in turn defined within an inline template.

(Ereditato da ITemplate)

Si applica a

Vedi anche