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


C# DetailsViewDesigner类代码示例

本文整理汇总了C#中System.Web.UI.Design.WebControls.DetailsViewDesigner的典型用法代码示例。如果您正苦于以下问题:C# DetailsViewDesigner类的具体用法?C# DetailsViewDesigner怎么用?C# DetailsViewDesigner使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: PreFilterProperties

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

namespace Examples.CS.WebControls.Design
{
    // The MyDetailsView is a copy of the DetailsView.
    [AspNetHostingPermission(SecurityAction.Demand, 
        Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, 
        Level = AspNetHostingPermissionLevel.Minimal)]
    [Designer(typeof(Examples.CS.WebControls.Design.MyDetailsViewDesigner))]
    public class MyDetailsView : DetailsView
    {
    } // MyDetailsView

    // Override members of the DetailsViewDesigner.
    [ReflectionPermission(SecurityAction.Demand, Flags=ReflectionPermissionFlag.MemberAccess)]
    public class MyDetailsViewDesigner : DetailsViewDesigner
    {
        // Determines the number of page links in the pager row
        // when viewed in the designer.
        protected override int SampleRowCount
        {
            get
            {
                // Render five page links in the pager row.
                return 5;
            }
        } // SampleRowCount

        // Shadow the control properties with design-time properties.
        protected override void PreFilterProperties(IDictionary properties)
        {
            // Call the base method first.
            base.PreFilterProperties(properties);

            // Make the NamingContainer visible in the Properties grid.
            PropertyDescriptor selectProp = 
                (PropertyDescriptor)properties["NamingContainer"];
            properties["NamingContainer"] =
                TypeDescriptor.CreateProperty(selectProp.ComponentType, 
                    selectProp, BrowsableAttribute.Yes);
        } // PreFilterProperties

        // Generate the design-time markup.
        const string capTag = "caption";
        const string trOpen = "tr><td colspan=2 align=center";
        const string trClose = "td></tr";

        public override string GetDesignTimeHtml()
        {
            // Make the full extent of the control more visible in the designer.
            // If the border style is None or NotSet, change the border to
            // a wide, blue, dashed line. Include the caption within the border.
            MyDetailsView myDV = (MyDetailsView)Component;
            string markup = null;
            int charX;

            // Check if the border style should be changed.
            if (myDV.BorderStyle == BorderStyle.NotSet ||
                myDV.BorderStyle == BorderStyle.None)
            {
                BorderStyle oldBorderStyle = myDV.BorderStyle;
                Unit oldBorderWidth = myDV.BorderWidth;
                Color oldBorderColor = myDV.BorderColor;

                // Set design-time properties and catch any exceptions.
                try
                {
                    myDV.BorderStyle = BorderStyle.Dashed;
                    myDV.BorderWidth = Unit.Pixel(3);
                    myDV.BorderColor = Color.Blue;

                    // Call the base method to generate the markup.
                    markup = base.GetDesignTimeHtml();
                }
                catch (Exception ex)
                {
                    markup = GetErrorDesignTimeHtml(ex);
                }
                finally
                {
                    // Restore the properties to their original settings.
                    myDV.BorderStyle = oldBorderStyle;
                    myDV.BorderWidth = oldBorderWidth;
                    myDV.BorderColor = oldBorderColor;
                }
            }
            else
            {
                // Call the base method to generate the markup.
                markup = base.GetDesignTimeHtml();
            }

            // Look for a <caption> tag.
            if ((charX = markup.IndexOf(capTag)) > 0)
            {
                // Replace the first caption with 
                // "tr><td colspan=2 align=center".
                markup = markup.Remove(charX,
                    capTag.Length).Insert(charX, trOpen);

                // Replace the second caption with "td></tr".
                if ((charX = markup.IndexOf(capTag, charX)) > 0)
                    markup = markup.Remove(charX,
                        capTag.Length).Insert(charX, trClose); 
            }
            return markup;
        } // GetDesignTimeHtml
    } // MyDetailsViewDesigner
} // Examples.CS.WebControls.Design
开发者ID:.NET开发者,项目名称:System.Web.UI.Design.WebControls,代码行数:118,代码来源:DetailsViewDesigner


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