控件 Editor Zone

谈一谈编辑区域控件 Editor Zone 
 
 
 
 
 
<script type="text/javascript"></script>
 

顾名思义Editor控件必然用于编辑webpart。和其他控件一样,只能显示在Editor模式。通常有四个标准的模式
AppearanceEditorPart,BehaviorEditorPart,LayoutEditorPart,PropertyGridEditorPart。下面我们将一一介绍。

 1。 Appearance Editor Part
主要用于编辑webpart的基本属性。

Title --- Web Part标题栏
ChromeType --边框属性
Direction -文本显示方向
Height
Width
Hidden -不显示在页面

Listing ShowAppearanceEditorPart.aspx

<%@ Page Language="VB" %>
<%@ Register TagPrefix="user" TagName="FirstSimplePart" Src="~/FirstSimplePart.ascx" %>
<%@ Register TagPrefix="user" TagName="SecondSimplePart" Src="~/SecondSimplePart.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<script runat="server">

    Sub Menu1_MenuItemClick(ByVal sender As Object, ByVal e As MenuEventArgs)
        WebPartManager1.DisplayMode = WebPartManager1.DisplayModes(e.Item.Text)
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <style type="text/css">
        .column
        {
            float:left;
            width:30%;
            height:200px;
            margin-right:10px;
            border:solid 1px black;
            background-color: white;
        }
        .menu
        {
            margin:5px 0px;
        }
        html
        {
            background-color:#eeeeee;
        }
    </style>
    <title>Show Appearance Editor Part</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:WebPartManager
        id="WebPartManager1"
        Runat="server" />

        <asp:Menu
            id="Menu1"
            OnMenuItemClick="Menu1_MenuItemClick"
            Orientation="Horizontal"
            CssClass="menu"
            Runat="server">
            <Items>
            <asp:MenuItem Text="Browse" />
            <asp:MenuItem Text="Design" />
            <asp:MenuItem Text="Edit" />
            </Items>
        </asp:Menu>

        <asp:WebPartZone
            id="WebPartZone1"
            CssClass="column"
            Runat="server">
            <ZoneTemplate>
                <user:FirstSimplePart
                    id="FirstSimplePart1"
                    Title="First Web Part"
                    Description="Our first simple Web Part"
                    Runat="server" />
                <user:SecondSimplePart
                    id="SecondSimplePart1"
                    Title="Second Web Part"
                    Description="Our second simple Web Part"
                    Runat="server" />
            </ZoneTemplate>
        </asp:WebPartZone>

        <asp:WebPartZone
            id="WebPartZone2"
            CssClass="column"
            Runat="server" />

        <asp:EditorZone
            id="EditorZone1"
            CssClass="column"
            Runat="server">
            <ZoneTemplate>
            <asp:AppearanceEditorPart
                id="AppearanceEditorPart1"
                Runat="server" />
            </ZoneTemplate>
        </asp:EditorZone>

    </form>
</body>
</html>
 

2. Behavior Editor Part


它的用途在于编辑以共享方式显示个性化的webpart属性,换句话说一个是向所有用户提供本人的个性化展示。

常用属性


Description
Title Link
Title Icon Image Link Enables you to specify an image that appears in a Web Part title bar.

Catalog Icon Image Link

Help Link

Help Mode

Import Error Message

Export Mode
Authorization Filter ---决定那些人有权限*作webpart。


Allow Close --是否允许关闭

Allow Connect --是否允许用户webpars之间的连接

Allow Edit --是否允许编辑

Allow Hide --是否允许隐藏Web Part。


Allow Minimize

Allow Zone Change --是否允许用户拖拉webpart

Behavior Editor部件仅仅出现在共享个性化范围,因此需要知道如何设置个性化webpart。

 

使用第一步---配置web.config

Listing . Web.Config

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <system.web>
      <webParts>
        <personalization>
          <authorization>
            <allow users="*" verbs="enterSharedScope"/>
          </authorization>
        </personalization>
      </webParts>
    </system.web>
</configuration>
第二步将当前网页的 WebPartManager 控件设为
<asp:WebPartManager
    id="WebPartManager1"
    Personalization-InitialScope="Shared"
    Runat="server" />
Personalization-InitialScope 即允许所有web配置文件授权的用户进入共享个性化区。
 
 
Listing . ShowBehaviorEditorPart.aspx

<%@ Page Language="VB" %>
<%@ Register TagPrefix="user" TagName="FirstSimplePart" Src="~/FirstSimplePart.ascx" %>
<%@ Register TagPrefix="user" TagName="SecondSimplePart" Src="~/SecondSimplePart.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<script runat="server">

    Sub Menu1_MenuItemClick(ByVal sender As Object, ByVal e As MenuEventArgs)
        WebPartManager1.DisplayMode = WebPartManager1.DisplayModes(e.Item.Text)
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <style type="text/css">
        .column
        {
            float:left;
            width:30%;
            height:200px;
            margin-right:10px;
            border:solid 1px black;
            background-color: white;
        }
        .menu
        {
            margin:5px 0px;
        }
        html
        {
            background-color:#eeeeee;
        }
    </style>
    <title>Show Behavior Editor Part</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:WebPartManager
        id="WebPartManager1"
        Personalization-InitialScope="Shared"
        Runat="server" />

        <asp:Menu
            id="Menu1"
            OnMenuItemClick="Menu1_MenuItemClick"
            Orientation="Horizontal"
            CssClass="menu"
            Runat="server">
            <Items>
            <asp:MenuItem Text="Browse" />
            <asp:MenuItem Text="Design" />
            <asp:MenuItem Text="Edit" />
            </Items>
        </asp:Menu>

        <asp:WebPartZone
            id="WebPartZone1"
            CssClass="column"
            Runat="server">
            <ZoneTemplate>
                <user:FirstSimplePart
                    id="FirstSimplePart1"
                    Title="First Web Part"
                    Description="Our first simple Web Part"
                    Runat="server" />
                <user:SecondSimplePart
                    id="SecondSimplePart1"
                    Title="Second Web Part"
                    Description="Our second simple Web Part"
                    Runat="server" />
            </ZoneTemplate>
        </asp:WebPartZone>

        <asp:WebPartZone
            id="WebPartZone2"
            CssClass="column"
            Runat="server" />

        <asp:EditorZone
            id="EditorZone1"
            CssClass="column"
            Runat="server">
            <ZoneTemplate>
            <asp:BehaviorEditorPart
                id="BehaviorEditorPart1"
                Runat="server" />
            </ZoneTemplate>
        </asp:EditorZone>

    </form>
</body>
</html>

效果图

 

3. Layout Editor Part
不用鼠标就能改变webpart布局】
实例:
Listing ShowLayoutEditorPart.aspx
          
          
<%@ Page Language="VB" %>
<%@ Register TagPrefix="user" TagName="FirstSimplePart" Src="~/FirstSimplePart.ascx" %>
<%@ Register TagPrefix="user" TagName="SecondSimplePart" Src="~/SecondSimplePart.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<script runat="server">

    Sub Menu1_MenuItemClick(ByVal sender As Object, ByVal e As MenuEventArgs)
        WebPartManager1.DisplayMode = WebPartManager1.DisplayModes(e.Item.Text)
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <style type="text/css">
        .column
        {
            float:left;
            width:30%;
            height:200px;
            margin-right:10px;
            border:solid 1px black;
            background-color: white;
        }
        .menu
        {
            margin:5px 0px;
        }
        html
        {
            background-color:#eeeeee;
        }
    </style>
    <title>Show Layout Editor Part</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:WebPartManager
        id="WebPartManager1"
        Runat="server" />

        <asp:Menu
            id="Menu1"
            OnMenuItemClick="Menu1_MenuItemClick"
            Orientation="Horizontal"
            CssClass="menu"
            Runat="server">
            <Items>
            <asp:MenuItem Text="Browse" />
            <asp:MenuItem Text="Design" />
            <asp:MenuItem Text="Edit" />
            </Items>
        </asp:Menu>

        <asp:WebPartZone
            id="WebPartZone1"
            CssClass="column"
            Runat="server">
            <ZoneTemplate>
            <user:FirstSimplePart
                id="FirstSimplePart1"
                Title="First Web Part"
                Description="Our first simple Web Part"
                Runat="server" />
            <user:SecondSimplePart
                id="SecondSimplePart1"
                Title="Second Web Part"
                Description="Our second simple Web Part"
                Runat="server" />
            </ZoneTemplate>
        </asp:WebPartZone>

        <asp:WebPartZone
            id="WebPartZone2"
            CssClass="column"
            Runat="server" />

        <asp:EditorZone
            id="EditorZone1"
            CssClass="column"
            Runat="server">
            <ZoneTemplate>
            <asp:LayoutEditorPart
                id="LayoutEditorPart1"
                Runat="server" />
            </ZoneTemplate>
        </asp:EditorZone>

    </form>
</body>
</html>
4、Property Grid Editor
有时我们觉得改变用户参数相当麻烦,如果我们使用这个控件,自动产生属性,将大大简化*作。
使用PropertyGridEditorPart首先我们要设置好webpart的个性化,然后再加上WebBrowsable特性,当然这个特性只能显示在PropertyGridEditorPart里。
Listing FeaturedMoviePart.ascx

<%@ Control Language="VB" ClassName="FeaturedMoviePart" %>

<script runat="server">

    Public Enum MovieCategory
        Action
        Animation
        Drama
        Horror
    End Enum

    Private _movieTitle As String
    Private _category As MovieCategory
    Private _movieDescription As String
    Private _inTheaters As Boolean

    <Personalizable()> _
    <WebBrowsable()> _
    <WebDisplayName("Title")> _
    <WebDescription("The title of the movie")> _
    Public Property MovieTitle() As String
        Get
            Return _movieTitle
        End Get
        Set(ByVal Value As String)
            _movieTitle = value
        End Set
    End Property

    <Personalizable()> _
    <WebBrowsable()> _
    <WebDisplayName("Category")> _
    <WebDescription("The movie category")> _
    Public Property Category() As MovieCategory
        Get
            Return _category
        End Get
        Set(ByVal Value As MovieCategory)
            _category = value
        End Set
    End Property

    <Personalizable()> _
    <WebBrowsable()> _
    <WebDisplayName("Description")> _
    <WebDescription("The movie description")> _
    Public Property MovieDescription() As String
        Get
            Return _movieDescription
        End Get
        Set(ByVal Value As String)
            _movieDescription = value
        End Set
    End Property

    <Personalizable()> _
    <WebBrowsable()> _
    <WebDisplayName("In Theaters")> _
    <WebDescription("Is the movie currently showing?")> _
    Public Property InTheaters() As Boolean
        Get
            Return _inTheaters
        End Get
        Set(ByVal Value As Boolean)
            _inTheaters = value
        End Set
    End Property

    Private Sub Page_PreRender()
        lblMovieTitle.Text = _movieTitle
        lblCategory.Text = _category.ToString()
        lblMovieDescription.Text = _movieDescription
        lblInTheaters.Visible = _inTheaters
    End Sub
</script>
<asp:Label
    id="lblMovieTitle"
    Runat="server" />
<br />
<asp:Label
    id="lblCategory"
    Runat="server" />
<br />
<asp:Label
    id="lblMovieDescription"
    Runat="server" />
<br />
<asp:Label
    id="lblInTheaters"
    Text="In Theaters Now!"
    CssClass="inTheaters"
    Runat="server" />

分析这个用户控件,我们发现每个属性都有Personalizable 和 WebBrowsable。另外WebDisplayName 和 WebDescription用来提供每个属性的名字和描述。

Listing 27.21. ShowPropertyGridEditorPart.aspx

<%@ Page Language="VB" %>
<%@ Register TagPrefix="user" TagName="FeaturedMoviePart" Src="~/FeaturedMoviePart.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">

    Sub Menu1_MenuItemClick(ByVal sender As Object, ByVal e As MenuEventArgs)
        WebPartManager1.DisplayMode = WebPartManager1.DisplayModes(e.Item.Text)
    End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <style type="text/css">
        .column
        {
            float:left;
            width:30%;
            height:200px;
            margin-right:10px;
            border:solid 1px black;
            background-color: white;
        }
        .menu
        {
            margin:5px 0px;
        }
        html
        {
            background-color:#eeeeee;
        }
    </style>
    <title>Show Property Grid Editor Part</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:WebPartManager
        id="WebPartManager1"
        Runat="server" />

        <asp:Menu
            id="Menu1"
            OnMenuItemClick="Menu1_MenuItemClick"
            Orientation="Horizontal"
            CssClass="menu"
            Runat="server">
            <Items>
            <asp:MenuItem Text="Browse" />
            <asp:MenuItem Text="Design" />
            <asp:MenuItem Text="Edit" />
            </Items>
        </asp:Menu>

        <asp:WebPartZone
            id="WebPartZone1"
            CssClass="column"
            Runat="server">
            <ZoneTemplate>
                <user:FeaturedMoviePart
                    id="FeaturedMoviePart1"
                    Title="Featured Movie Part"
                    Description="Displays movie information"
                    Runat="server" />
            </ZoneTemplate>
        </asp:WebPartZone>

        <asp:WebPartZone
            id="WebPartZone2"
            CssClass="column"
            Runat="server" />

        <asp:EditorZone
            id="EditorZone1"
            CssClass="column"
            Runat="server">
            <ZoneTemplate>
            <asp:PropertyGridEditorPart
                id="PropertyGridEditorPart1"
                Runat="server" />
            </ZoneTemplate>
        </asp:EditorZone>
    </form>
</body>
</html>

运行后的效果图

最后,我们应该注意PropertyGridEditorPart的下面三个属性。
Boolean  --是否显示 CheckBox control.

Enumeration  --是否显示 DropDownList control.

Other Properties --是否显示 TextBox control.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值