Partilhar via


DetailsView.Fields Propriedade

Definição

Obtém uma coleção de objetos DataControlField que representam os campos de linha declarados especificamente em um controle DetailsView.

public:
 virtual property System::Web::UI::WebControls::DataControlFieldCollection ^ Fields { System::Web::UI::WebControls::DataControlFieldCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public virtual System.Web.UI.WebControls.DataControlFieldCollection Fields { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.Fields : System.Web.UI.WebControls.DataControlFieldCollection
Public Overridable ReadOnly Property Fields As DataControlFieldCollection

Valor da propriedade

DataControlFieldCollection

Um DataControlFieldCollection que contém todos os campos de linha declarados explicitamente no controle DetailsView.

Atributos

Exemplos

O exemplo de código a seguir demonstra como adicionar campos de linha declarativamente à Fields coleção de um DetailsView controle.


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

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>DetailsView Fields Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        
      <h3>DetailsView Fields Example</h3>
                
        <asp:detailsview id="CustomerDetailView"
          datasourceid="DetailsViewSource"
          datakeynames="CustomerID"
          AutoGenerateRows="false"
          allowpaging="true"
          runat="server">
               
        <Fields>
         <asp:BoundField 
           DataField="CompanyName" 
           HeaderText="Company Name"/>
         <asp:BoundField 
           DataField="City" 
           HeaderText="City"/>
        </Fields>
                    
        </asp:detailsview>
        
        <!-- 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="DetailsViewSource" runat="server" 
          ConnectionString=
            "<%$ ConnectionStrings:NorthWindConnectionString%>"
          InsertCommand="INSERT INTO [Customers]([CustomerID],
            [CompanyName], [Address], [City], [PostalCode], [Country]) 
            VALUES (@CustomerID, @CompanyName, @Address, @City, 
            @PostalCode, @Country)"

          SelectCommand="Select [CustomerID], [CompanyName], 
            [Address], [City], [PostalCode], [Country] From 
            [Customers]">
        </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">
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>DetailsView Fields Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        
      <h3>DetailsView Fields Example</h3>
                
        <asp:detailsview id="CustomerDetailView"
          datasourceid="DetailsViewSource"
          datakeynames="CustomerID"
          AutoGenerateRows="false"
          allowpaging="true"
          runat="server">
               
        <Fields>
         <asp:BoundField 
           DataField="CompanyName" 
           HeaderText="Company Name"/>
         <asp:BoundField 
           DataField="City" 
           HeaderText="City"/>
        </Fields>
                    
        </asp:detailsview>
        
        <!-- 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="DetailsViewSource" runat="server" 
          ConnectionString=
            "<%$ ConnectionStrings:NorthWindConnectionString%>"
          InsertCommand="INSERT INTO [Customers]([CustomerID],
            [CompanyName], [Address], [City], [PostalCode], [Country]) 
            VALUES (@CustomerID, @CompanyName, @Address, @City, 
            @PostalCode, @Country)"

          SelectCommand="Select [CustomerID], [CompanyName], 
            [Address], [City], [PostalCode], [Country] From 
            [Customers]">
        </asp:SqlDataSource>
    </form>
  </body>
</html>

Comentários

Quando você declara explicitamente os campos de linha para um DetailsView controle, esses campos de linha são armazenados na Fields propriedade (coleção). A Fields coleção também permite que você gerencie programaticamente a coleção de linhas explicitamente declaradas.

Observação

Campos de linha explicitamente declarados podem ser usados em combinação com campos de linha gerados automaticamente. Quando ambos são usados, os campos de linha declarados explicitamente são renderizados primeiro, seguidos pelos campos de linha gerados automaticamente. Os campos de linha gerados automaticamente não são adicionados à Fields coleção.

Diferentes tipos de campo de linha determinam o comportamento das linhas no controle. A tabela a seguir mostra os diferentes tipos de campo de linha que podem ser usados na Fields coleção.

Tipo de campo de linha Descrição
BoundField Exibe o valor de um campo em uma fonte de dados como texto.
ButtonField Exibe um botão de comando no DetailsView controle. Isso permite que você exiba uma linha com um controle de botão personalizado, como um botão Adicionar ou Remover.
CheckBoxField Exibe uma caixa de seleção no DetailsView controle. Esse tipo de campo de linha é comumente usado para exibir campos com um valor booliano.
CommandField Exibe botões de comando internos para executar operações de edição, inserção ou exclusão no DetailsView controle.
HyperLinkField Exibe o valor de um campo em uma fonte de dados como um hiperlink. Esse tipo de campo de linha permite que você associe um segundo campo à URL do hiperlink.
ImageField Exibe uma imagem no DetailsView controle.
TemplateField Exibe o conteúdo definido pelo usuário para uma linha no DetailsView controle de acordo com um modelo especificado. Esse tipo de campo de linha permite que você crie um campo de linha personalizado.

Para declarar explicitamente os campos de linha para um DetailsView controle, primeiro defina a AutoGenerateRows propriedade como false. Em seguida, adicione marcas de abertura e fechamento <Fields> entre as marcas de abertura e fechamento do DetailsView controle. Por fim, liste os campos de linha que você deseja incluir entre as marcas de abertura e fechamento <Fields> . Os campos de linha são exibidos no DetailsView controle na ordem em que os campos de linha aparecem na Fields coleção.

Embora você possa adicionar campos de linha programaticamente à Fields coleção, é mais fácil listar os campos de linha declarativamente no controle e, em DetailsView seguida, usar a Visible propriedade de cada campo de linha para mostrar ou ocultar o campo de linha.

Se a Visible propriedade de um campo de linha estiver definida como false, a linha não será exibida no DetailsView controle e os dados da linha não farão uma viagem de ida e volta para o cliente. Se você quiser que os dados de uma linha que não esteja visível façam uma viagem de ida e volta, adicione o nome do DataKeyNames campo à propriedade.

Aplica-se a

Confira também