MetaTable.Columns Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém uma coleção de colunas para a tabela.
public:
property System::Collections::ObjectModel::ReadOnlyCollection<System::Web::DynamicData::MetaColumn ^> ^ Columns { System::Collections::ObjectModel::ReadOnlyCollection<System::Web::DynamicData::MetaColumn ^> ^ get(); };
public System.Collections.ObjectModel.ReadOnlyCollection<System.Web.DynamicData.MetaColumn> Columns { get; }
member this.Columns : System.Collections.ObjectModel.ReadOnlyCollection<System.Web.DynamicData.MetaColumn>
Public ReadOnly Property Columns As ReadOnlyCollection(Of MetaColumn)
Valor da propriedade
Uma coleção que contém as colunas da tabela.
Exemplos
O exemplo a seguir mostra como usar a Columns propriedade. No exemplo, os modelos de página dados dinâmicos foram copiados para a pasta \DynamicData\CustomPages\ProductDescriptions para fornecer uma exibição personalizada para a tabela ProductDescription do banco de dados AdventureWorksLT. A marcação do arquivo Insert.aspx é alterada para adicionar um OnDataBound
manipulador de eventos chamado DetailsView1_DataBound
. No manipulador de eventos, o FindMetaTable método é usado para localizar a meta tabela. A Columns propriedade é usada para exibir o número de colunas na tabela.
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.Web.DynamicData;
public partial class Insert : System.Web.UI.Page {
protected MetaTable table;
protected void Page_Init(object sender, EventArgs e) {
DynamicDataManager1.RegisterControl(DetailsView1);
}
protected void Page_Load(object sender, EventArgs e) {
table = DetailsDataSource.GetTable();
Title = table.DisplayName;
}
protected void DetailsView1_DataBound(object sender, EventArgs e) {
var dsc = DetailsView1.FindDataSourceControl() as LinqDataSource;
if (dsc == null || dsc.EnableInsert != true)
return;
var mTbl = DetailsView1.FindMetaTable() as MetaTable;
if (mTbl != null)
LblMetaTbl.Text = "Column count = " + mTbl.Columns.Count.ToString();
var fldTmpUsrCtl = DetailsView1.FindFieldTemplate("Description") as FieldTemplateUserControl;
if (fldTmpUsrCtl != null) {
var entryFldDescript = fldTmpUsrCtl.DataControl as TextBox;
entryFldDescript.Text = "(Enter short Description here.)";
}
var fldTmpUsrCtl2 = DetailsView1.FindFieldTemplate("ModifiedDate") as FieldTemplateUserControl;
if (fldTmpUsrCtl2 != null) {
var entryFldModDate = fldTmpUsrCtl2.DataControl as TextBox;
entryFldModDate.Text = System.DateTime.Now.Date.ToShortDateString();
}
}
protected void DetailsView1_ItemCommand(object sender, DetailsViewCommandEventArgs e) {
if (e.CommandName == DataControlCommands.CancelCommandName) {
Response.Redirect(table.ListActionPath);
}
}
protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e) {
if (e.Exception == null) {
Response.Redirect(table.ListActionPath);
}
}
}
<%@ Page Language="C#" MasterPageFile="~/Site.master" CodeFile="Insert.aspx.cs" Inherits="Insert" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:DynamicDataManager ID="DynamicDataManager1" runat="server" AutoLoadForeignKeys="true" />
<h2> DynamicData\CustomPages\ProductDescriptions\Insert.aspx <%= table.DisplayName %></h2>
<p> <asp:Label ID="LblMetaTbl" runat="server" Text="Label"></asp:Label> </p>
<asp:ScriptManagerProxy runat="server" ID="ScriptManagerProxy1" />
<asp:ValidationSummary ID="ValidationSummary1" runat="server" EnableClientScript="true"
HeaderText="List of validation errors" />
<asp:DynamicValidator runat="server" ID="DetailsViewValidator" ControlToValidate="DetailsView1" Display="None" />
<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="DetailsDataSource" DefaultMode="Insert"
AutoGenerateInsertButton="True" OnItemCommand="DetailsView1_ItemCommand" OnItemInserted="DetailsView1_ItemInserted"
CssClass="detailstable" FieldHeaderStyle-CssClass="bold"
OnDataBound="DetailsView1_DataBound">
</asp:DetailsView>
<asp:LinqDataSource ID="DetailsDataSource" runat="server" EnableInsert="true">
</asp:LinqDataSource>
</asp:Content>