當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。