DetailsView.Fields Propriedade

Definição

Obtém uma coleção de DataControlField objetos que representam os campos de linha explicitamente declarados num DetailsView controlo.

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 de Propriedade

A DataControlFieldCollection que contém todos os campos de linhas explicitamente declarados no DetailsView controlo.

Atributos

Exemplos

O exemplo de código seguinte demonstra como adicionar declarativamente campos de linhas à Fields coleção de um DetailsView controlo.


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

Observações

Quando declaras explicitamente os campos de linha de um DetailsView controlo, esses campos de linha são armazenados na Fields propriedade (coleção). A Fields coleção também permite gerir programaticamente a coleção de linhas explicitamente declaradas.

Note

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

Diferentes tipos de campos de linhas determinam o comportamento das linhas no controlo. A tabela seguinte mostra os diferentes tipos de campos de linhas que podem ser usados na Fields coleção.

Tipo de campo de linhas Descrição
BoundField Mostra o valor de um campo numa fonte de dados como texto.
ButtonField Mostra um botão de comando no DetailsView controlo. Isto permite-lhe mostrar uma linha com um controlo de botão personalizado, como um botão Adicionar ou Remover.
CheckBoxField Mostra uma caixa de seleção no DetailsView controlo. Este tipo de campo de linha é comumente usado para exibir campos com valor booleano.
CommandField Exibe botões de comando incorporados para realizar operações de edição, inserção ou eliminação no DetailsView controlo.
HyperLinkField Apresenta o valor de um campo numa fonte de dados como um hiperlink. Este tipo de campo de linha permite associar um segundo campo à URL do hiperlink.
ImageField Mostra uma imagem no DetailsView controlo.
TemplateField Apresenta conteúdo definido pelo utilizador para uma linha no DetailsView controlo, de acordo com um modelo especificado. Este tipo de campo de linha permite-lhe criar um campo de linha personalizado.

Para declarar explicitamente os campos da linha para um DetailsView controlo, primeiro defina a AutoGenerateRows propriedade para false. De seguida, adicione etiquetas de abertura e fecho <Fields> entre as etiquetas de abertura e fecho do DetailsView controlo. Por fim, liste os campos de linhas que queres incluir entre as etiquetas de abertura e fecho <Fields> . Os campos de linha são exibidos no DetailsView controlo pela ordem em que aparecem na Fields coleção.

Embora possas adicionar programaticamente campos de linhas à Fields coleção, é mais fácil listar os campos de linhas de forma declarativa no DetailsView controlo e depois usar a Visible propriedade de cada campo de linha para mostrar ou esconder o campo de linha.

Se a Visible propriedade de um campo de linha estiver definida para false, a linha não é exibida no DetailsView controlo e os dados da linha não fazem uma viagem de ida e volta ao cliente. Se quiser que os dados de uma linha que não é visível façam uma viagem de ida e volta, adicione o nome do campo à DataKeyNames propriedade.

Aplica-se a

Ver também