|
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
|
Tradução
Original
|
Classe ControlBuilder
Namespace: System.Web.UI
Assembly: System.Web (em System.Web.dll)
O tipo ControlBuilder expõe os membros a seguir.
| Nome | Descrição | |
|---|---|---|
![]() | BindingContainerBuilder | |
![]() | BindingContainerType | |
![]() | ComplexPropertyEntries | |
![]() | ControlType | |
![]() | CurrentFilterResolutionService | |
![]() | DeclareType | |
![]() | FChildrenAsProperties | |
![]() | FIsNonParserAccessor | |
![]() | HasAspCode | |
![]() | ID | |
![]() | InDesigner | |
![]() | InPageTheme | |
![]() | ItemType | |
![]() | Localize | |
![]() | NamingContainerType | Infraestrutura. |
![]() | PageVirtualPath | |
![]() | Parser | Infraestrutura. |
![]() | ServiceProvider | |
![]() | SubBuilders | |
![]() | TagName | |
![]() | TemplatePropertyEntries | |
![]() | ThemeResolutionService |
| Nome | Descrição | |
|---|---|---|
![]() | AllowWhitespaceLiterals | |
![]() | AppendLiteralString | |
![]() | AppendSubBuilder | |
![]() | BuildObject | |
![]() | CloseControl | |
![]() ![]() | CreateBuilderFromType | |
![]() | Equals(Object) | |
![]() | Finalize | |
![]() | GetChildControlType | |
![]() | GetHashCode | |
![]() | GetObjectPersistData | |
![]() | GetResourceKey | Infraestrutura. |
![]() | GetType | |
![]() | HasBody | |
![]() | HtmlDecodeLiterals | |
![]() | Init | |
![]() | MemberwiseClone | |
![]() | NeedsTagInnerText | |
![]() | OnAppendToParentBuilder | |
![]() | ProcessGeneratedCode | |
![]() | SetResourceKey | Infraestrutura. |
![]() | SetServiceProvider | Infraestrutura. |
![]() | SetTagInnerText | |
![]() | ToString |
[ControlBuilderAttribute(typeof(ControlBuilderType))]
vbc /r:System.dll /r:System.Web.dll /r:System.Drawing.dll /t:library /out:myWebAppPath/Bin/vb_mycontrolbuilder.dll myControlBuilder.vb
csc /t:library /out:myWebAppPath/Bin/cs_mycontrolbuilder.dll myControlBuilder.cs
using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections; using System.Drawing; using System.Security.Permissions; namespace CustomControls { [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] public class MyTableCell : TableCell, INamingContainer { }; [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] public class MyCell /* * Class name: MyCell. * Declares the class for the child controls to include in the control collection. */ { string _id; string _value; Color _backColor; public string CellID { get { return _id; } set { _id = value; } } public string Text { get { return _value; } set { _value = value; } } public Color BackColor { get { return _backColor; } set { _backColor = value; } } }; [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] public class MyControlBuilder : ControlBuilder { public override Type GetChildControlType(string tagName, IDictionary attribs) { // Allows TableRow without "runat=server" attribute to be added to the collection. if (String.Compare(tagName, "mycell", true) == 0) return typeof(MyCell); return null; } public override void AppendLiteralString(string s) { // Ignores literals between rows. } } [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] [ControlBuilderAttribute(typeof(MyControlBuilder))] public class MyCS_CustomControl : Control, INamingContainer /* * Class name: MyCS_CustomControl. * Processes the element declarations within a control declaration. * This builds the actual control. */ { // Declares the custom control that must be built programmatically. Table _table; private String _title; private int _rows; private int _columns; Hashtable _cellObjects = new Hashtable(); // Rows property to be used as the attribute name in the Web page. public int Rows { get { return _rows; } set { _rows = value; } } // Columns property to be used as the attribute name in the Web page. public int Columns { get { return _columns; } set { _columns = value; } } // Title property to be used as the attribute name in the Web page. public string Title { get { return _title; } set { _title = value; } } protected void createNewRow(int rowNumber) { // Creates a row and adds it to the table. TableRow row; row = new TableRow(); _table.Rows.Add(row); // Creates a cell that contains text. for (int y = 0; y < Columns; y++) appendCell(row, rowNumber, y); } protected void appendCell(TableRow row, int rowNumber, int cellNumber) { TableCell cell; TextBox textbox; cell = new TableCell(); textbox = new TextBox(); cell.Controls.Add(textbox); textbox.ID = "r" + rowNumber.ToString() + "c" + cellNumber.ToString(); // Checks for the MyCell child object. if (_cellObjects[textbox.ID] != null) { MyCell cellLookup; cellLookup = (MyCell)_cellObjects[textbox.ID]; textbox.Text = cellLookup.Text; textbox.BackColor = cellLookup.BackColor; } else textbox.Text = "Row: " + rowNumber.ToString() + " Cell: " + cellNumber.ToString(); row.Cells.Add(cell); } // Called at runtime when a child object is added to the collection. protected override void AddParsedSubObject(object obj) { MyCell cell = obj as MyCell; if (cell != null) { _cellObjects.Add(cell.CellID, cell); } } protected override void OnPreRender(EventArgs e) /* * Function name: OnPreRender. * Carries out changes affecting the control state and renders the resulting UI. */ { // Increases the number of rows if needed. while (_table.Rows.Count < Rows) { createNewRow(_table.Rows.Count); } // Checks that each row has the correct number of columns. for (int i = 0; i < _table.Rows.Count; i++) { while (_table.Rows[i].Cells.Count < Columns) { appendCell(_table.Rows[i], i, _table.Rows[i].Cells.Count); } while (_table.Rows[i].Cells.Count > Columns) { _table.Rows[i].Cells.RemoveAt(_table.Rows[i].Cells.Count - 1); } } } protected override void CreateChildControls() /* * Function name: CreateChildControls. * Adds the Table and the text control to the control collection. */ { LiteralControl text; // Initializes the text control using the Title property. text = new LiteralControl("<h5>" + Title + "</h5>"); Controls.Add(text); _table = new Table(); _table.BorderWidth = 2; Controls.Add(_table); } } }
<%@ Page Language="C#" %> <%@ Register TagPrefix="AspNetSamples" Assembly="cs_mycontrolbuilder" Namespace="CustomControls" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>ControlBuilder Example</title> </head> <body> <form id="form1" runat="server"> <div> <AspNetSamples:MyCS_CustomControl id="Custom1" title="Auto-Generated Table" columns="3" rows="3" runat="server"> <mycell cellid="r0c0" BackColor="red" text="red cell"></mycell> <mycell cellid="r2c2" BackColor="green" text="green cell"></mycell> </AspNetSamples:MyCS_CustomControl> </div> </form> </body> </html>
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)
O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.
System.Web.UI.ControlBuilder
System.Web.UI.CodeStatementBuilder
System.Web.UI.DataSourceControlBuilder
System.Web.UI.HtmlControls.HtmlEmptyTagControlBuilder
System.Web.UI.HtmlControls.HtmlHeadBuilder
System.Web.UI.HtmlControls.HtmlSelectBuilder
System.Web.UI.MobileControls.DeviceSpecificChoiceControlBuilder
System.Web.UI.MobileControls.DeviceSpecificControlBuilder
System.Web.UI.MobileControls.MobileControlBuilder
System.Web.UI.ObjectTagBuilder
System.Web.UI.SkinBuilder
System.Web.UI.TemplateBuilder
System.Web.UI.UserControlControlBuilder
System.Web.UI.WebControls.HyperLinkControlBuilder
System.Web.UI.WebControls.LabelControlBuilder
System.Web.UI.WebControls.LinkButtonControlBuilder
System.Web.UI.WebControls.ListItemControlBuilder
System.Web.UI.WebControls.LiteralControlBuilder
System.Web.UI.WebControls.MultiViewControlBuilder
System.Web.UI.WebControls.PlaceHolderControlBuilder
System.Web.UI.WebControls.TableCellControlBuilder
System.Web.UI.WebControls.TextBoxControlBuilder
System.Web.UI.WebControls.WizardStepControlBuilder
System.Web.UI.WebControls.XmlBuilder
