当前位置: 首页>>代码示例>>C#>>正文


C# DataSourceDesigner.ActionLists属性代码示例

本文整理汇总了C#中System.Web.UI.Design.DataSourceDesigner.ActionLists属性的典型用法代码示例。如果您正苦于以下问题:C# DataSourceDesigner.ActionLists属性的具体用法?C# DataSourceDesigner.ActionLists怎么用?C# DataSourceDesigner.ActionLists使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在System.Web.UI.Design.DataSourceDesigner的用法示例。


在下文中一共展示了DataSourceDesigner.ActionLists属性的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: SampleControl

//引入命名空间
using System;
using System.Web;
using System.Web.UI;
using System.Drawing;
using System.Collections;
using System.Web.UI.WebControls;
using System.Web.UI.Design;
using System.ComponentModel;
using System.ComponentModel.Design;

namespace ASPNet.Samples
{
    // Create a custom control class with a Label and TextBox
    [System.Security.Permissions.PermissionSetAttribute(
        System.Security.Permissions.SecurityAction.InheritanceDemand,
        Name = "FullTrust")]
    [System.Security.Permissions.PermissionSetAttribute(
        System.Security.Permissions.SecurityAction.Demand,
        Name = "FullTrust")]
    [DesignerAttribute(typeof(SampleControlDesigner))]
    public class SampleControl : CompositeControl
    {
        int defaultWidth = 150;

        public SampleControl()
        {
        }

        // Create a set of public properties
        [Browsable(true), Bindable(true), DefaultValue(""),
            PersistenceMode(PersistenceMode.Attribute)]
        public string LabelText
        {
            get
            {
                EnsureChildControls();
                return MyLabel.Text;
            }
            set
            {
                EnsureChildControls();
                MyLabel.Text = value;
            }
        }

        [Browsable(true), Bindable(true), DefaultValue(""),
            PersistenceMode(PersistenceMode.Attribute)]
        public string BoxText
        {
            get
            { 
                EnsureChildControls();
                return MyTextBox.Text;
            }
            set
            {
                EnsureChildControls();
                MyTextBox.Text = value;
            }
        }

        [Browsable(true), Bindable(true), Category("Appearance"),
            PersistenceMode(PersistenceMode.Attribute)]
        public Unit BoxWidth
        {
            get
            {
                EnsureChildControls();
                return MyTextBox.Width;
            }
            set
            {
                EnsureChildControls();
                MyTextBox.Width = value;
            }
        }

        [Browsable(true), Bindable(true), Category("Appearance"),
            PersistenceMode(PersistenceMode.Attribute)]
        public override Color BackColor
        {
            get
            {
                EnsureChildControls();
                return MyTextBox.BackColor;
           }
            set
            {
                EnsureChildControls();
                MyTextBox.BackColor = value;
            }
        }

        // Create private properties
        private TextBox MyTextBox
        {
            get
            {
                EnsureChildControls();
                return (TextBox)FindControl("MyTextBox");
            }
        }
        private Label MyLabel
        {
            get
            {
                EnsureChildControls();
                return (Label)FindControl("MyLabel");
            }
        }

        // Create a label and a text box.
        protected override void CreateChildControls()
        {
            // Clear the controls
            Controls.Clear();

            // Create a Label control
            Label localLabel = new Label();
            localLabel.EnableViewState = false;
            localLabel.ID = "MyLabel";
            localLabel.Text = localLabel.ID + ": ";
            Controls.Add(localLabel);

            // Create a TextBox control
            TextBox localTextBox = new TextBox();
            localTextBox.ID = "MyTextBox";
            localTextBox.Width = defaultWidth;
            Controls.Add(localTextBox);
        }
    }

    // Create a designer class for the SampleControl
    [System.Security.Permissions.SecurityPermission(
        System.Security.Permissions.SecurityAction.Demand, 
        Flags = System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]
    public class SampleControlDesigner : ControlDesigner
    {
        // Constructor
        public SampleControlDesigner() : base()
        {
        }

        // Do not allow resizing; force use of properties to set width
        public override bool AllowResize
        {
            get { return false; }
        }

        // Create a custom ActionLists collection
        public override DesignerActionListCollection ActionLists
        {
            get
            {
                // Create the collection
                DesignerActionListCollection actionLists = new DesignerActionListCollection();

                // Get the base items, if any
                actionLists.AddRange(base.ActionLists);

                // Add a custom list of actions
                actionLists.Add(new CustomControlActionList(this));

                return actionLists;
            }
        }

        // Create an embedded DesignerActionList class
        private class CustomControlActionList : DesignerActionList
        {
            // Create private fields
            private SampleControlDesigner _parent;
            private DesignerActionItemCollection items;

            // Constructor
            public CustomControlActionList(SampleControlDesigner parent)
                : base(parent.Component)
            {
                _parent = parent;
            }

            // Create a set of transacted callback methods
            // Callback for the wide format
            public void FormatWide()
            {
                SampleControl ctrl = (SampleControl)_parent.Component;
                
                // Create the callback
                TransactedChangeCallback toCall = new TransactedChangeCallback(DoFormat);
                // Create the transacted change in the control
                ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatWide", "Use a wide format");
            }

            // Callback for the medium format
            public void FormatMedium()
            {
                SampleControl ctrl = (SampleControl)_parent.Component;
                
                // Create the callback
                TransactedChangeCallback toCall = new TransactedChangeCallback(DoFormat);
                // Create the transacted change in the control
                ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatMedium", "Use a medium format");
            }

            // Callback for the narrow format
            public void FormatNarrow()
            {
                SampleControl ctrl = (SampleControl)_parent.Component;
                
                // Create the callback
                TransactedChangeCallback toCall = new TransactedChangeCallback(DoFormat);
                // Create the transacted change in the control
                ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatNarrow", "Use a narrow format");
            }

            // Get the sorted list of Action items
            public override DesignerActionItemCollection GetSortedActionItems()
            {
                if (items == null)
                {
                    // Create the collection
                    items = new DesignerActionItemCollection();

                    // Add a header to the list
                    items.Add(new DesignerActionHeaderItem("Select a Style:"));

                    // Add three commands
                    items.Add(new DesignerActionMethodItem(this, "FormatWide", "Format Wide", true));
                    items.Add(new DesignerActionMethodItem(this, "FormatMedium", "Format Medium", true));
                    items.Add(new DesignerActionMethodItem(this, "FormatNarrow", "Format Narrow", true));
                }
                return items;
            }

            // Function for the callbacks to call
            public bool DoFormat(object arg)
            {
                // Get a reference to the designer's associated component
                SampleControl ctl = (SampleControl)_parent.Component;

                // Get the format name from the arg
                string fmt = (string)arg;

                // Create property descriptors
                PropertyDescriptor widthProp = TypeDescriptor.GetProperties(ctl)["BoxWidth"];
                PropertyDescriptor backColorProp = TypeDescriptor.GetProperties(ctl)["BackColor"];

                // For the selected format, set two properties
                switch (fmt)
                {
                    case "FormatWide":
                        widthProp.SetValue(ctl, Unit.Pixel(250));
                        backColorProp.SetValue(ctl, Color.LightBlue);
                        break;
                    case "FormatNarrow":
                        widthProp.SetValue(ctl, Unit.Pixel(100));
                        backColorProp.SetValue(ctl, Color.LightCoral);
                        break;
                    case "FormatMedium":
                        widthProp.SetValue(ctl, Unit.Pixel(150));
                        backColorProp.SetValue(ctl, Color.White);
                        break;
                }
                _parent.UpdateDesignTimeHtml();

                // Return an indication of success
                return true;
            }
        }
    }
}
开发者ID:.NET开发者,项目名称:System.Web.UI.Design,代码行数:272,代码来源:DataSourceDesigner.ActionLists


注:本文中的System.Web.UI.Design.DataSourceDesigner.ActionLists属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。