Restituisce l'origine dati associata al controllo dati per il controllo specificato.
Assembly: System.Web.DynamicData (in System.Web.DynamicData.dll)
<ExtensionAttribute> _ Public Shared Function FindDataSourceControl ( _ current As Control _ ) As IDynamicDataSource
public static IDynamicDataSource FindDataSourceControl( this Control current )
[ExtensionAttribute] public: static IDynamicDataSource^ FindDataSourceControl( Control^ current )
static member FindDataSourceControl : current:Control -> IDynamicDataSource
Parametri
- current
- Tipo: System.Web.UI.Control
Controllo nella gerarchia di un controllo con associazione a dati di cui si desidera trovare il controllo contenitore.
Valore restituito
Tipo: System.Web.DynamicData.IDynamicDataSourceOrigine dati associata al controllo dati per il controllo specificato.
Nota sull'utilizzo
In Visual Basic e C# è possibile chiamare questo metodo come metodo di istanza su qualsiasi oggetto di tipo Control. Per chiamare il metodo utilizzando la sintassi del metodo di istanza, omettere il primo parametro. Per ulteriori informazioni, vedere Metodi di estensione (Visual Basic) o Metodi di estensione (Guida per programmatori C#).Nell'esempio seguente viene illustrato come trovare il controllo origine dati contenitore. Nell'esempio i modelli di pagina Dynamic Data vengono copiati nella cartella \DynamicData\CustomPages\ProductDescriptions per fornire una visualizzazione personalizzata della tabella ProductDescription del database AdventureWorksLT. Il markup del file Insert.aspx viene modificato per aggiungere un gestore eventi OnDataBound denominato DetailsView1_DataBound, in cui viene chiamato il metodo FindDataSourceControl per trovare il controllo origine dati.
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>
.NET Framework
Supportato in: 4, 3.5 SP1Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.