DynamicDataExtensions.FindDataSourceControl(Control) DynamicDataExtensions.FindDataSourceControl(Control) DynamicDataExtensions.FindDataSourceControl(Control) DynamicDataExtensions.FindDataSourceControl(Control) Method

Definition

Gibt die Datenquelle zurück, die dem Datensteuerelement für das angegebene Steuerelement zugeordnet ist.Returns the data source that is associated with the data control for the specified control.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Web::DynamicData::IDynamicDataSource ^ FindDataSourceControl(System::Web::UI::Control ^ current);
public static System.Web.DynamicData.IDynamicDataSource FindDataSourceControl (this System.Web.UI.Control current);
static member FindDataSourceControl : System.Web.UI.Control -> System.Web.DynamicData.IDynamicDataSource
<Extension()>
Public Function FindDataSourceControl (current As Control) As IDynamicDataSource

Parameter

current
Control Control Control Control

Ein Steuerelement in der Hierarchie eines datengebundenen Steuerelements, dessen enthaltendes Steuerelement Sie suchen möchten.A control inside the hierarchy of a data-bound control whose containing control you want to find.

Gibt zurück

Die Datenquelle, die dem Datensteuerelement für das angegebene Steuerelement zugeordnet ist.The data source that is associated with the data control for the specified control.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie das enthaltende Datenquellen-Steuerelement finden.The following example shows how to find the containing data source control. Im Beispiel werden die Vorlagen für die dynamische Daten Seite in den Ordner \dynamicdata\custompasges\productdescription kopiert, um eine benutzerdefinierte Anzeige für die ProductDescription-Tabelle der AdventureWorksLT-Datenbank bereitzustellen.In the example, the Dynamic Data page templates are copied to the \DynamicData\CustomPages\ProductDescriptions folder to provide a custom display for the ProductDescription table of the AdventureWorksLT database. Das INSERT. aspx-Datei Markup wird geändert, um OnDataBound einen Ereignishandler DetailsView1_DataBoundmit dem Namen hinzu FindDataSourceControl zufügen, in dem die-Methode aufgerufen wird, um das Datenquellen-Steuerelement zu suchen.The Insert.aspx file markup is changed to add an OnDataBound event handler named DetailsView1_DataBound, in which the FindDataSourceControl method is called to find the data source control.

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>

Gilt für: