DynamicDataExtensions.FindFieldTemplate(Control, String) Method

Definition

Возвращает шаблон поля для заданного столбца в контейнере именования заданного элемента управления.Returns the field template for the specified column in the specified control's naming container.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Web::UI::Control ^ FindFieldTemplate(System::Web::UI::Control ^ control, System::String ^ columnName);
public static System.Web.UI.Control FindFieldTemplate (this System.Web.UI.Control control, string columnName);
static member FindFieldTemplate : System.Web.UI.Control * string -> System.Web.UI.Control
<Extension()>
Public Function FindFieldTemplate (control As Control, columnName As String) As Control

Parameters

control
Control

Контейнерный элемент управления.The containing control.

columnName
String

Имя столбца.The name of the column.

Returns

Control

Шаблон поля для заданного столбца в контейнере именования заданного элемента управления.The field template for the specified column in the specified control's naming container.

Examples

В следующем примере показано, как найти элемент управления "текстовое поле" для указанного имени столбца.The following example shows how to find the text box control for a specified column name. Например, платформа динамических данных шаблоны страниц копируются в папку \Динамикдата\кустомпажес\продуктдескриптионс, чтобы предоставить пользовательский дисплей для таблицы ProductDescription базы данных AdventureWorksLT.In 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. Разметка файла INSERT. aspx изменяется для добавления OnDataBound обработчика событий с именем DetailsView1_DataBound, в котором метод FindDataSourceControl вызывается для поиска элемента управления "текстовое поле".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 a text box 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>

Applies to