DynamicDataExtensions.FindDataSourceControl(Control) Método
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.
Retorna a fonte de dados associada ao controle de dados do controle especificado.
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
Parâmetros
- current
- Control
Um controle na hierarquia de um controle com limite de dados cujo controle recipiente você deseja localizar.
Retornos
A fonte de dados associada ao controle de dados do controle especificado.
Exemplos
O exemplo a seguir mostra como localizar o controle de fonte de dados que contém. No exemplo, os modelos de página Dados Dinâmicos são 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 de arquivo Insert.aspx é alterada para adicionar um OnDataBound
manipulador de eventos chamado DetailsView1_DataBound
, no qual o FindDataSourceControl método é chamado para localizar o controle da fonte de dados.
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>