DynamicDataExtensions::FindFieldTemplate Method (Control^, String^)
.NET Framework (current version)
Returns the field template for the specified column in the specified control's naming container.
Assembly: System.Web.DynamicData (in System.Web.DynamicData.dll)
public: [ExtensionAttribute] static Control^ FindFieldTemplate( Control^ control, String^ columnName )
Parameters
- control
-
Type:
System.Web.UI::Control^
The containing control.
- columnName
-
Type:
System::String^
The name of the column.
Return Value
Type: System.Web.UI::Control^The field template for the specified column in the specified control's naming container.
The following example shows how to find the text box control for a specified column name. 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. 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>
.NET Framework
Available since 3.5
Available since 3.5
Show: