Share via


DynamicControl controle de servidor Web Declarative sintaxe

The DynamicControl controle faz parte da estrutura de dados dinâmicos do ASP.NET. O controle exibe o conteúdo de um campo especificado no modelo data-limite controles (sistema autônomo, por exemplo, FormView ou ListView Controla) usando recursos de dados dinâmicos, sistema autônomo modelos de campo.

<asp:DynamicControl
    ApplyFormatInEditMode="True|False"
    ConvertEmptyStringToNull="True|False"
    CssClass="string"
    DataField="string"
    DataFormatString="string"
    EnableViewState="True|False"
    HtmlEncode="True|False"
    ID="string"
    Mode="Edit|Insert|ReadOnly"
    NullDisplayText="string"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnUnload="Unload event handler"
    runat="server"
    UIHint="string"
    ValidationGroup="string"
    Visible="True|False"
>
</asp:DynamicControl>

Comentários

The DynamicControl controle é usado por controles ligados a dados com modelo, sistema autônomo o FormView ou ListView controles para exibir um campo de dados que usa recursos de dados dinâmicos do ASP.NET. Você também pode usar um DynamicControl controle em um TemplateField campo de um GridView ou DetailsView controle.

The DynamicControl controle fornece funcionalidade como o das DynamicField campo. No entanto, porque o DynamicControl controle é usado somente dentro de modelos, ele dará a você mais flexibilidade no controle como os dados são exibidos, como você também pode adicionar marcação HTML para o modelo.

Para especificar o campo a ser exibido em um DynamicControl controle, conjunto o DataField propriedade para o nome de campo. Você pode aplicar uma seqüência de formatação personalizada para o valor do campo pelo configuração o DataFormatString propriedade. Por padrão, a seqüência de caracteres de formatação é aplicada aos valores do campo somente quando o controle limite a dados está no modo somente leitura. Para aplicar a seqüência de caracteres de formatação a valores que são exibidos quando o controle limite a dados está no modo de edição, conjunto o ApplyFormatInEditMode propriedade para true. Se um valor do campo for null, você pode exibir texto personalizado definindo a NullDisplayText propriedade. Se você conjunto o ConvertEmptyStringToNull propriedade para true, o DynamicControlcontrole converte automaticamente a seqüência de caracteres vazia ("") valores aos valores nulo de campo.

The DynamicControl controle suporta modos de exibição diferentes. Para especificar o modo de exibição a DynamicControl controle, defina o Mode propriedade. A tabela a seguir mostra os modos diferentes.

  • ReadOnly
    Especifica o modo de exibição, que impede que o usuário modificar os valores de um registro ou um campo de dados. Este modo pode ser usado em qualquer modelo.

  • Edit
    Especifica o modo de edição, que permite aos usuários atualizar valores em um registro existente. Esse modo é usado no EditItemTemplate modelo.

  • Insert
    Especifica o modo de inserção, que permite que os usuários insiram valores para um novo registro. Esse modo é usado no InsertItemTemplate modelo.

Exemplo

O exemplo a seguir mostra como usar o DynamicControl controle em um ListView controle para exibir e edição valores de uma tabela de banco de dados.

<%@ 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">

  Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs)    
    DynamicDataManager1.RegisterControl(ListView1)
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>DynamicControl Sample</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:DynamicDataManager ID="DynamicDataManager1" runat="server"
        AutoLoadForeignKeys="true" />

      <asp:ListView ID="ListView1" runat="server" DataSourceID="LinqDataSource1"
        InsertItemPosition="LastItem">
        <LayoutTemplate>
          <table cellpadding="2" border="1" runat="server" id="tblCustomers">
            <tr runat="server">
              <th runat="server">&nbsp;</th>              
              <th runat="server">Name</th>
              <th runat="server">Number</th>
              <th runat="server">Standard Cost</th>
              <th runat="server">List Price</th>
              <th runat="server">Sell Start Date</th>
            </tr>
            <tr runat="server" id="itemPlaceholder" />
          </table>

          <asp:DataPager runat="server" ID="CustomersPager" PageSize="20">
            <Fields>
              <asp:NumericPagerField ButtonCount="10" />
            </Fields>
          </asp:DataPager>
        </LayoutTemplate>
        <ItemTemplate>
          <tr runat="server">
            <td>
              <asp:LinkButton ID="EditButton" runat="server" CommandName="Edit" Text="Edit" CausesValidation="false" />
              <asp:LinkButton ID="DeleteButton" runat="server" CommandName="Delete" Text="Delete" CausesValidation="false" 
                OnClientClick='return confirm("Are you sure you want to delete this item?");' />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="Name" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="ProductNumber" />
            </td>
            <td align="right">
              <asp:DynamicControl runat="server" DataField="StandardCost" DataFormatString="{0:C}" />
            </td>
            <td align="right">
              <asp:DynamicControl runat="server" DataField="ListPrice" DataFormatString="{0:C}" />
            </td>
            <td align="center">
              <asp:DynamicControl runat="server" DataField="SellStartDate" 
                DataFormatString="{0:MM/dd/yyyy}" NullDisplayText="&nbsp;" />
            </td>
          </tr>
        </ItemTemplate>
        <EditItemTemplate>
          <tr>
            <td>
              <asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" Text="Update" ValidationGroup="Edit" />
              <asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" CausesValidation="false" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="Name" Mode="Edit" ValidationGroup="Edit" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="ProductNumber" Mode="Edit" ValidationGroup="Edit" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="StandardCost" Mode="Edit" ValidationGroup="Edit" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="ListPrice" Mode="Edit" ValidationGroup="Edit" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="SellStartDate" Mode="Edit" ValidationGroup="Edit" 
                DataFormatString="{0:MM/dd/yyyy}" ApplyFormatInEditMode="true" />
            </td>
          </tr>
        </EditItemTemplate>
        <InsertItemTemplate>
          <tr>
            <td>
              <asp:LinkButton ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" ValidationGroup="Insert" />
              <asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" CausesValidation="false" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="Name" Mode="Insert" ValidationGroup="Insert" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="ProductNumber" Mode="Insert" ValidationGroup="Insert" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="StandardCost" Mode="Insert" ValidationGroup="Insert" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="ListPrice" Mode="Insert" ValidationGroup="Insert" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="SellStartDate" Mode="Insert" ValidationGroup="Insert" />
            </td>
          </tr>
        </InsertItemTemplate>
      </asp:ListView>

      <!-- This example uses Microsoft SQL Server and connects   -->
      <!-- to the AdventureWorksLT sample database.              -->
      <asp:LinqDataSource ID="LinqDataSource1" runat="server" 
        TableName="Products"
        ContextTypeName="AdventureWorksLTDataContext"
        EnableUpdate="true"
        EnableDelete="true"
        EnableInsert="true" >
      </asp:LinqDataSource>
    </div>
    </form>
</body>
</html>
<%@ 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">
  protected void Page_Init(object sender, EventArgs e)
  {
    DynamicDataManager1.RegisterControl(ListView1);
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>DynamicControl Sample</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:DynamicDataManager ID="DynamicDataManager1" runat="server"
        AutoLoadForeignKeys="true" />

      <asp:ListView ID="ListView1" runat="server" DataSourceID="LinqDataSource1"
        InsertItemPosition="LastItem">
        <LayoutTemplate>
          <table cellpadding="2" border="1" runat="server" id="tblCustomers">
            <tr runat="server">
              <th runat="server">&nbsp;</th>              
              <th runat="server">Name</th>
              <th runat="server">Number</th>
              <th runat="server">Standard Cost</th>
              <th runat="server">List Price</th>
              <th runat="server">Sell Start Date</th>
            </tr>
            <tr runat="server" id="itemPlaceholder" />
          </table>

          <asp:DataPager runat="server" ID="CustomersPager" PageSize="20">
            <Fields>
              <asp:NumericPagerField ButtonCount="10" />
            </Fields>
          </asp:DataPager>
        </LayoutTemplate>
        <ItemTemplate>
          <tr runat="server">
            <td>
              <asp:LinkButton ID="EditButton" runat="server" CommandName="Edit" Text="Edit" CausesValidation="false" />
              <asp:LinkButton ID="DeleteButton" runat="server" CommandName="Delete" Text="Delete" CausesValidation="false" 
                OnClientClick='return confirm("Are you sure you want to delete this item?");' />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="Name" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="ProductNumber" />
            </td>
            <td align="right">
              <asp:DynamicControl runat="server" DataField="StandardCost" DataFormatString="{0:C}" />
            </td>
            <td align="right">
              <asp:DynamicControl runat="server" DataField="ListPrice" DataFormatString="{0:C}" />
            </td>
            <td align="center">
              <asp:DynamicControl runat="server" DataField="SellStartDate" 
                DataFormatString="{0:MM/dd/yyyy}" NullDisplayText="&nbsp;" />
            </td>
          </tr>
        </ItemTemplate>
        <EditItemTemplate>
          <tr>
            <td>
              <asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" Text="Update" ValidationGroup="Edit" />
              <asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" CausesValidation="false" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="Name" Mode="Edit" ValidationGroup="Edit" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="ProductNumber" Mode="Edit" ValidationGroup="Edit" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="StandardCost" Mode="Edit" ValidationGroup="Edit" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="ListPrice" Mode="Edit" ValidationGroup="Edit" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="SellStartDate" Mode="Edit" ValidationGroup="Edit" 
                DataFormatString="{0:MM/dd/yyyy}" ApplyFormatInEditMode="true" />
            </td>
          </tr>
        </EditItemTemplate>
        <InsertItemTemplate>
          <tr>
            <td>
              <asp:LinkButton ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" ValidationGroup="Insert" />
              <asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" CausesValidation="false" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="Name" Mode="Insert" ValidationGroup="Insert" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="ProductNumber" Mode="Insert" ValidationGroup="Insert" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="StandardCost" Mode="Insert" ValidationGroup="Insert" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="ListPrice" Mode="Insert" ValidationGroup="Insert" />
            </td>
            <td>
              <asp:DynamicControl runat="server" DataField="SellStartDate" Mode="Insert" ValidationGroup="Insert" />
            </td>
          </tr>
        </InsertItemTemplate>
      </asp:ListView>

      <!-- This example uses Microsoft SQL Server and connects   -->
      <!-- to the AdventureWorksLT sample database.              -->
      <asp:LinqDataSource ID="LinqDataSource1" runat="server" 
        TableName="Products"
        ContextTypeName="AdventureWorksLTDataContext"
        EnableUpdate="true"
        EnableDelete="true"
        EnableInsert="true" >
      </asp:LinqDataSource>
    </div>
    </form>
</body>
</html>

Consulte também

Referência

DynamicControl