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 mới 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).
· [assembly: AssemblyKeyFile("..\\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