zoukankan      html  css  js  c++  java
  • WebPart

    WebPartManage:可以做成一个用户控件,里面包括一个DropDownList和一个WebPartManage。用下拉框改变WebPartManage的显示模式。switch (dpType.SelectedValue),设置WebPartManager1.DisplayMode = WebPartManager.EditDisplayMode;(还有DesignDisplayMode, CatalogDisplayMode, BrowseDisplayMode)。注:switch中的default为可选(C#编程规范中表示最好加上,做为异常处理)。default也必须加break。

     

    WebPartZone中的“无标题”修改:比如在WebPartZone中加入一个gridview控件,然后在源码中为gridview加入title属性即可(此时.net会提示找不到gridview的title属性)

    CatalogZone:
    拖曳出来的CatalogZone中需要加入PageCatalogPart(显示页面上已经删除的WebPart的列表)。ImportCatalogPart允许从Webpart文件中导入WebPart。

    EditorZone:拖曳出来的EditorZone中需要加入AppearanceEditorPart。选择模式为EditDisplayMode后在WebPartZone的右上角菜单中会出现“编辑”。EditorZone可以加入对应的EditorPart。

    ConnectionZone:允许用户建立WebPartZone间的通讯(面向最终用户而不是开发人员)。
    参考文章http://hi.baidu.com/meiixaohu8/blog/item/269681c85b620c1f7e3e6f2e.html


    WebPart之间的通讯:
    A。WebPartManager调用[ConnectionProvider]方法。
    B。WebPartManager从返回参数中获得接口。
    C。WebPartManager调用[ConnectionConsumer]方法,将接口传递给订阅者。
    D。订阅者使用给定的接口与发布者通讯。

    A。定义ISendParam.cs

    using System;

    /// <summary>
    /// Summary description for ISendParam
    /// </summary>

    public interface ISendParam
    {
        
    string GetParam();
    }

    B。新建两个用户控件,UserCtl1是接连提供者(ConnectionProvider),UserCtl2是连接用户(ConnectionConsumer)。
    UserCtl1(继承ISendparam接口):

    Code
    Code

    UserCtl2:

    Code

    C。在测试页中加入两个WebPartZone,分别装入这两个控件。把WebPartManage1的DisplayMode设为ConnectDisplayMode,测试连接。

    添加自定义的WebPart:

     A。使用自定义控件:新建一个自定义控件,在原基础上再继承IWebPart接口,实现以下接口成员:
     CatalogIconImageUrl:当WebPart关闭后出现在CatalogZone时的图片。
     Description:鼠标悬停Title时的ToolTip。
     Subtitle:WebPart小标题。
     Title:WebPart正标题。
     TitleIconImageUrl:WebPart题标的图标。
     TitleUrl:点击Title时的跳转路径,如http://www.baidu.com或default2.aspx。
    其它操作和一般用户控件一样,完成后拖入WebPartZone中。
     B。使用类文件:
    新建一个类,让它继承WebPart:

    Code

    aspx页:
    <%@ Register TagPrefix="cc1" Namespace="WebPartNameSpace" %>
    <cc1:MyWebPart runat="server" ID="MyWebPartID" Title="MyWebPartTitle" AllowClose="False" />

    WebPart的信息保存:
     使用aspnet_regsql.exe创建保存webpart页面变化信息的数据库(aspnetdb)。
     在aspnetdb数据库中,有两个表是用来保存个性化信息的:aspnet_PersonalizationAllUsers和aspnet_PersonalizationPerUser

    个性化体现:
     A。配置web.config:增加<membership...配置(附连接字符串配置如下)。主要配置有数据提供者,连接字符串,最小密码长度。

    Code

      B。点击“网站”-“ASP.NET配置”(Web.config的可视化配置工具)。进入Security进行用户配置。“选择身份验证类型”设为“通过Internet”(即Forms验证)。然后创建几个用户。
      C。把<asp:Login...控件拖到网页(Default.aspx)中。运行,用不同的用户登录可以看到不同的WebPart表示

    统一页面设置:实际上,有一些网站并不是所有的用户都能自定义用户界面,而是通过站长来设置,对所有用户都起作用
     A。web.config:在webparts结点下加入<authorization...结点的配置。

    <webParts>
       
    <personalization>
          
    <authorization>
            
    <allow users="*" verbs="enterSharedScope"/>
          
    </authorization>
        
    </personalization>
    </webParts>

      B。在网页(Default.aspx)中,为<asp:WebPartManager控件加入属性Personalization-InitialScope="Shared"。
      C。用a用户登录,修改后再用b用户登录。b会看到a的修改。反之亦然,即实现了统一的页面显示

    为WebPart添加Verbs
     即为自定义的WebPart添加右上角的下拉操作。主要是在MyWebPart类中重载Verbs属性

    Code
  • 相关阅读:
    Vs2010程序和数据库打包成安装文件
    转——C# DataGridView控件 动态添加新行
    c# WinForm开发 DataGridView控件的各种操作
    转——使用PowerDesigner画ER图
    C#画图
    DataGridView 取得当前单元格的内容实现模糊查找
    DataGridView 取得或者修改当前单元格的内容
    c# 做了个Form,上面有个Button,如何在Form加载好之后,用代码触发这个Button的Click事件
    一次ORACLE连接报错
    再次学习Django,实现sql的页面显示及条件查询
  • 原文地址:https://www.cnblogs.com/vipcjob/p/1541387.html
Copyright © 2011-2022 走看看