Friday, March 2, 2012

Lesson 04: WebPart property and default toolpart


Exercise : hiểu về Properties và built-in ToolPart cho webpart
v    Exercise 01: chuẩn bị tài nguyên cho webpart
Ø      Thêm mi Class Library Project  tên là ToolpartForWebpart
Ø     Click vào References | R-Right | Add Reference
Ø     Chọn Microsoft.Sharepoint.Dll vào  thư mục của  WebPartSoln
Ø     Tiếp tục chọn Tab .NET | System.Web
§         Khai báo Using
·        using System.Web;
·        using System.Web.UI;
·        using Microsoft.SharePoint;
·        using Microsoft.SharePoint.WebPartPages;
·        using System.Web.UI.WebControls;
§         Khai báo kế thừa từ WebPart Class cho Class1
Ø      Chọn Microsoft.Sharepoint.Dll vào  thư mục của  WebPartSoln
Ø     Vào thư mục Properties m file AssemblyInfo.cs
§        Di chuyển xuống phần cuối cùng của File AssemblyInfo.cs, thêm vào : (tùy với vị trí đặt Hkgsolution.snk).
·        [assemblyAssemblyKeyFile("..\\hkgsolution.snk")]
Ø     Build project ở chế độ Release và succsessfull
v    Exercise 02: Cơ bản về Property cho webpart
Ø      Tiếp tục với ToolpartForWebpart project
Ø     Đổi tên Class1 thành BasicOfProperty.cs
Ø     Khai báo
using System.ComponentModel;
   using System.Xml.Serialization;
Ø     Khai báo attribute cho BasicOfProperty (lý do khai báo: webpart và c# truyền dữ liệu thông qua Object nên dữ liệu phải được Serialization)
   [DefaultProperty("Text"),

   ToolboxData("<{0}:BasicOfProperty runat=server></{0}:BasicOfProperty>"),

   XmlRoot(Namespace = "ToolPartForWebPart")]
·        BasicOfProperty : tên class webpart
·        ToolPartForWebPart : tên namespace
Ø     Khai báo biến private kiểu string
§        Tên là webPartProperty
§        Default là: " WebPart Property"
Ø     Khai báo properties  get và set là kiểu string
§        Tên là WebPartProperty
§        Khai báo
  [Browsable(true), Category("HKG Properties"),
        DefaultValue("Hello HKG"),
  WebPartStorage(Storage.Personal)]
Ø     Khai báo code trong phương thức CreateChildControls
§        Khởi tạo mới LiteralControl  tên là literalForProperty
§        Gán biến  webPartProperty  cho thuộc tính Text của literalForProperty
§        Thêm literalForPropertyvào WebPart
¨       namespace ToolPartForWebPart
¨       {
¨           [DefaultProperty("Text"),
¨          ToolboxData("<{0}:BasicOfProperty runat=server></{0}:BasicOfProperty>"),
¨          XmlRoot(Namespace = "ToolPartForWebPart")]
¨           public class BasicOfProperty:WebPart
¨           {
¨               string webPartProperty="Default WebPart Property";
¨               [Browsable(true), Category("HKG Properties"),
¨               DefaultValue("Hello HKG"),
¨               WebPartStorage(Storage.Personal)]
¨               public string WebPartProperty
¨               {
¨                   get { return webPartProperty; }
¨                   set { webPartProperty = value; }
¨               }
¨               
¨               protected override void CreateChildControls()
¨               {
¨                   Literal literalForProperty = new Literal();
¨                   literalForProperty.Text = webPartProperty;
¨                   this.Controls.Add(literalForProperty);
¨                   //base.CreateChildControls();
¨               }
¨      

¨           }
¨     }
Ø     Thêm BasicOfProperty.dwp
<?xml version="1.0" encoding="utf-8"?>

<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2" >

      <Title>BasicOfProperty</Title>

      <Description>BasicOfProperty</Description>

     <Assembly>ToolPartForWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ec47e7d9465cc36e</Assembly>

      <TypeName>ToolPartForWebPart.BasicOfProperty</TypeName>

      <!-- Specify initial values for any additional base class or custom properties here. -->

</WebPart>

Assembly>ToolPartForWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ec47e7d9465cc36e</Assembly>

ToolPartForWebPart: tên dll

1.0.0.0: phiên bản của webpart

ec47e7d9465cc36e: key được tạo từ strong name

<TypeName>ToolPartForWebPart.BasicOfProperty</TypeName>

ToolPartForWebPart. BasicOfProperty: tênnamespace.tênwebpart
Ø     Build project chế độ Release và Deploy WebPart
§        Copy ToolpartForWebpart.dll đến thư mục bin
§        Copy BasicOfProperty.dwp đến thư mục wpcatalog
§        Thêm thẻ <SafeControl>
<SafeControl Assembly="ToolPartForWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ec47e7d9465cc36e"Namespace="ToolPartForWebPart" TypeName="*" Safe="True" />
Ø     Quay lại sharepoint site
§        Thêm WebPart này đến WebPart page
§        Nhìn thấy " WebPart Property"  nếu không có lỗi
Ø     Nhấp vào dấu tam giác xuống | Modify Shared Webpart
§        Thay đổi " WebPart Property"   thành " WebPart Property In Toolpart"  
§        Nhấp OK sẽ thấy hiển thị lại kết quả WebPart Property In Toolpart"  
v    Exercise 03: nâng cao về Property cho webpart
Ø      Tiếp tục với ToolpartForWebpart project
Ø     Thêm mới 1 class tên  MoreOfProperty.cs
Ø     Khai báo
using System.ComponentModel;
   using System.Xml.Serialization;
Ø     Khai báo attribute cho MoreOfProperty (lý do khai báo: webpart và c# truyền dữ liệu thông qua Object nên dữ liệu phải được Serialization)
   [DefaultProperty("Text"),
   ToolboxData("<{0}: MoreOfProperty runat=server></{0}: MoreOfProperty >"),
   XmlRoot(Namespace = "ToolPartForWebPart")]
·        BasicOfProperty : tên class webpart
·        ToolPartForWebPart : tên namespace
Ø     Khai báo biến private kiểu string
§        Tên là listName
§        Default là: " Contacts "
Ø     Khai báo properties  get và set là kiểu string
§        Tên là ListName
§        Khai báo đoạn này trước properties
  [Browsable(true), Category("HKG Properties"),
        DefaultValue("Hello HKG"),
  WebPartStorage(Storage.Personal)]
Ø     Khai báo biến private kiểu bool
§        Tên là isShow
§        Default là: true
Ø     Khai báo properties  get và set là kiểu bool
§        Tên là IsShow
§        Khai báo trước properties
  [Browsable(true), Category("HKG Properties"),
        DefaultValue("Hello HKG"),
  WebPartStorage(Storage.Personal)]

Ø     Khai báo code trong phương thức CreateChildControls
§        Nếu isShow là true sau đó
·        Khởi tạo mới LiteralControl  tên là literalForList
·        Gán biến  listName cho thuộc tính Text của literalForList
·        Thêm literalForList vào WebPart
namespace ToolPartForWebPart
{
   
    [DefaultProperty("Text"),
  ToolboxData("<{0}:MoreOfProperties runat=server></{0}:MoreOfProperties>"),
  XmlRoot(Namespace = "ToolPartForWebPart")]
    public class MoreOfProperties:WebPart
    {
        string listname = "Contact";
        [Browsable(true), Category("HKG Properties"),
        DefaultValue("Hello HKG"),
        WebPartStorage(Storage.Personal)]
        public string Listname
        {
            get { return listname; }
            set { listname = value; }
        }

        bool isShow = true;
        [Browsable(true), Category("HKG Properties"),
        DefaultValue(true),
        WebPartStorage(Storage.Personal)]
        public bool IsShow
        {
            get { return isShow; }
            set { isShow = value; }
        }
       
        protected override void CreateChildControls()
        {
            if (isShow)
            {
                Literal literalForList = new Literal();
                literalForList.Text = listname;
                this.Controls.Add(literalForList);
            }
           
            //base.CreateChildControls();
        }
    }
           }
Ø     Thêm MoreOfProperty.dwp
Ø     Build project chế độ Release và Deploy WebPart(làm tương tụ các bước trên)
Ø     Quay lại sharepoint site
§        Thêm WebPart này đến WebPart page
§        Nhìn thấy " WebPart Property"  nếu không có lỗi
Ø     Nhấp vào dấu tam giác xuống | Modify Shared Webpart
§        Thay đổi " Contact"   thành " Calendar"  
………………………

0 comments:

Post a Comment