Udostępnij za pośrednictwem


ControlDesigner.ViewControl Właściwość

Definicja

Pobiera lub ustawia kontrolkę serwera sieci Web, która może służyć do wyświetlania podglądu znacznika HTML w czasie projektowania.

public:
 property System::Web::UI::Control ^ ViewControl { System::Web::UI::Control ^ get(); void set(System::Web::UI::Control ^ value); };
public System.Web.UI.Control ViewControl { get; set; }
member this.ViewControl : System.Web.UI.Control with get, set
Public Property ViewControl As Control

Wartość właściwości

Control Obiekt używany przez klasę bazową do generowania znaczników HTML w czasie projektowania.

Przykłady

W poniższym przykładzie kodu pokazano, jak oznaczyć projektanta kontrolek atrybutem SupportsPreviewControlAttribute . Przykładowy kod tworzy kontrolkę serwera sieci Web z Label klasy i kojarzy kontrolkę z implementacją niestandardowego projektanta kontrolek. Deklaracja klasy projektanta kontrolek jest oznaczona atrybutem ustawionym SupportsPreviewControl na true. Projektant kontrolek zastępuje metodę GetDesignTimeHtml , a następnie wyświetla Text właściwość kontrolki w kursywie w czasie projektowania.

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
using System.Reflection;

namespace ControlDesignerSamples.CS
{
    // Define a simple designer associated with a 
    // simple text web control.
    
    // Mark the designer with the SupportsPreviewControlAttribute set
    // to true.  This means the base.UsePreviewControl returns true,
    // and base.ViewControl returns a temporary preview copy of the control.
    [SupportsPreviewControl(true)]
    public class SimpleTextControlDesigner : TextControlDesigner
    {		
        // Override the base GetDesignTimeHtml method to display 
        // the design time text in italics.
        public override string GetDesignTimeHtml()
        {
            string html = String.Empty;
 
            try
            {
                // Initialize the return string to the default
                // design time html of the base TextControlDesigner.
                html = base.GetDesignTimeHtml();

                // Get the ViewControl for the associated control.
                Label ctrl = (Label)ViewControl;

                ctrl.Style.Add(HtmlTextWriterStyle.FontStyle, "Italic");
                html = base.GetDesignTimeHtml();
            }
            catch (System.Exception e)
            {
               if (String.IsNullOrEmpty(html))
               {
                   html = GetErrorDesignTimeHtml(e);
               }
            }
            
            return html;
        }
    }

    // Derive a simple Web control from Label to render a text string.
    // Associate this control with the SimpleTextControlDesigner.
    [DesignerAttribute("ControlDesignerSamples.CS.SimpleTextControlDesigner"),
    ToolboxData("<{0}:MyLabelControl Runat=\"Server\"><{0}:MyLabelControl>")]
    public class MyLabelControl : Label
    {
        // Use the Label control implementation, but associate
        // the derived class with the custom control designer.
    }
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Web.UI.WebControls
Imports System.Reflection

Namespace ControlDesignerSamples.VB

    ' Derive a simple Web control from Label to render a text string.
    ' Associate this control with the SimpleTextControlDesigner.
    <DesignerAttribute("ControlDesignerSamples.CS.SimpleTextControlDesigner"), _
    ToolboxData("<{0}:MyLabelControl Runat=""Server""><{0}:MyLabelControl>")> _
    Public Class MyLabelControl
        Inherits Label

        ' Use the Label control implementation, but associate
        ' the derived class with the custom control designer.
    End Class


    ' Mark the designer with the SupportsPreviewControlAttribute set
    ' to true.  This means the base.UsePreviewControl returns true,
    ' and base.ViewControl returns a temporary preview copy of the control.
    <SupportsPreviewControl(True)> _
    Public Class SimpleTextControlDesigner
        Inherits TextControlDesigner

        ' Override the base GetDesignTimeHtml method to display 
        ' the design time text in italics.
        Public Overrides Function GetDesignTimeHtml() As String
            Dim html As String = String.Empty

            Try
                ' Get the ViewControl for the associated control.
                Dim ctrl As Label = CType(ViewControl, Label)

                ' Set the default text, if necessary
                If ctrl.Text.Length = 0 Then
                    ctrl.Text = "Sample Text"
                End If

                ' Set the style to italic
                ctrl.Style.Add(HtmlTextWriterStyle.FontStyle, "italic")

                ' Let the base class create the HTML markup
                html = MyBase.GetDesignTimeHtml()
            Catch ex As Exception
                If String.IsNullOrEmpty(html) Then
                    ' Display the exception message
                    html = GetErrorDesignTimeHtml(ex)
                End If
            End Try

            Return html
        End Function

    End Class
End Namespace

Uwagi

Właściwość ViewControl używa UsePreviewControl właściwości , aby określić jej wartość zwracaną.

UsePreviewControl Jeśli właściwość ma truewartość , ViewControl właściwość zwraca tymczasową kopię kontrolki. Zmiany w kontrolce tymczasowej nie są utrwalane.

UsePreviewControl Jeśli właściwość ma falsewartość , ViewControl właściwość zwraca wystąpienie Component właściwości dla kontrolki. Zmiany w wystąpieniu kontrolki są utrwalane.

Ustawienie SupportsPreviewControl w SupportsPreviewControlAttribute obiekcie służy do ustawiania wartości UsePreviewControl właściwości. W związku z tym SupportsPreviewControl ustawienie określa typ kontrolki zwracanej przez ViewControl właściwość w klasie bazowej ControlDesigner . Jeśli właściwość SupportsPreviewControlAttribute nie jest określona w deklaracji projektanta kontrolek, ControlDesigner zachowanie obiektu jest równoważne określeniu SupportsPreviewControl właściwości jako false.

Dotyczy

Zobacz też