Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
DynamicDataExtensions.FindMetaTable, méthode
Retourne l'objet Metatable pour le contrôle de données conteneur.
Assembly : System.Web.DynamicData (dans System.Web.DynamicData.dll)
Paramètres
- current
- Type : System.Web.UI.Control
Contrôle actuel.
Valeur de retour
Type : System.Web.DynamicData.MetaTableObjet Metatable pour le contrôle de données conteneur.
Remarque sur l'utilisation
En Visual Basic et C#, vous pouvez appeler cette méthode comme une méthode d'instance sur n'importe quel objet de type Control. Lorsque vous utilisez la syntaxe des méthodes d'instance pour appeler cette méthode, omettez le premier paramètre. Pour plus d'informations, consultez Méthodes d'extension (Visual Basic) ou Méthodes d'extension (Guide de programmation C#).L'exemple suivant montre comment rechercher l'objet MetaTable pour un contrôle. Dans l'exemple, les modèles de page Dynamic Data sont copiés dans le dossier \DynamicData\CustomPages\ProductDescriptions pour fournir un affichage personnalisé pour la table ProductDescription de la base de données AdventureWorksLT. La balise de fichier Insert.aspx est modifiée pour ajouter un gestionnaire d'événements OnDataBound nommé DetailsView1_DataBound, dans lequel la méthode FindMetaTable est appelée pour rechercher l'objet MetaTable.
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>
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.