magnify
Home Microsoft SharePoint Web Partlarda Farkli Veri Turlerinde Toolpart Kullanimi
formats

Web Partlarda Farkli Veri Turlerinde Toolpart Kullanimi

Sharepoint içerisinde özel içeriklerin görüntülenebilmesi ve kişiselleştirilebilme için webpartları kullandığımızdan daha önce söz etmiştik. Hazırladığımız webpartlarda dinamikliğin sağlanabilmesi için “EditorPart” veya “ToolPart” olarak adlandırabileceğimiz, webpartın önyüzünde görüntülenmeyen ancak düzenleme modundayken görebildiğimiz bir konsolu vardır. Bu konsol içerisinde Appearance, Layout ve Advanced isminde varsayılan tablar her zaman bulunur ancak bizde bu bölüme yeni kontroller ekleyebilir ve bu kontrollerde yapacağımız değişikliğin webpart içerisinde aktif hale gelmesini sağlayabiliriz.

image001

Örneğin Sharepoint’te yer alan bir listedeki verileri çeken ve sizin istediğiniz farklı bir görünümde gösteren bir webpart yazdığımızı varsayalım. Sharepoint’te yer alan 100 tane listeniz varsa ve hepsinde aynı görünüm değişikliğini yapmak istiyorsanız 100 farklı webpart yazmanız gerekir. Oysa ToolPart’ı kullanarak okunacak listeyi parametre olarak geçebiliecek olursa tek bir dinamik webpart yazıp her sayfada webpartın okuyacağı liste özelliğini değiştirip aynı webpartı tekrar tekrar kullanabiliriz.

Toolpart içerisinde pek çok kontrol türünden ASP.Net kontrolleri yaratabilirsiniz. Textbox, dropdownlist, checkbox, radiobutton gibi. Şimdi bir toolpart nesnesini projemize nasıl ekleriz ve yukarıda bahsettiğim türde farklı veri türlerini barındıran toolpart kontrollerini nasıl yaratabiliriz bunu örnekleyelim.

TextBox Türünde

private string _myString;

[Category(“Custom Properties”)]
[DefaultValue(c_MyStringDefault)]
[WebPartStorage(Storage.Personal)]
[FriendlyNameAttribute(“Custom String”)]
[Description(“Type a string value.”)]
[Browsable(true)]
[XmlElement(ElementName = “MyString”)]
public string MyString
{
get
{
return _myString;
}
set
{
_myString = value;
}
}

Checkbox Türünde

private bool _myBool;

[Category(“Custom Properties”)]
[DefaultValue(c_MyBoolDefault)]
[WebPartStorage(Storage.Personal)]
[FriendlyNameAttribute(“Custom Boolean”)]
[Description(“Select to set value to True.”)]
[Browsable(true)]
[XmlElement(ElementName = “MyBoolean”)]
public bool MyBool
{
get
{
return _myBool;
}
set
{
_myBool = value;
}
}

DropDownList Türünde

public enum myFarmEnum
{
barn = 0,
tractor,
hay,
pitchfork
};

[Category(“Custom Properties”)]
[DefaultValue(myFarmEnum.hay)]
[WebPartStorage(Storage.Personal)]
[FriendlyName(“Custom Enum”)]
[Description(“Select a value from the dropdown list.”)]
[Browsable(true)]
public myFarmEnum MyEnum
{
get
{
return _myEnum;
}
set
{
_myEnum = value;
}
}

DateTime Türünde

private System.DateTime _myDateTime;

[Category(“Custom Properties”)]
[WebPartStorage(Storage.Personal)]
[FriendlyNameAttribute(“Custom Date Time”)]
[Description(“Type a DateTime value.”)]
[Browsable(true)]
[XmlElement(typeof(System.DateTime))]
public System.DateTime MyDateTime
{
get
{
return _myDateTime;
}
set
{
_myDateTime = value;
}
}

Yukarıdaki örnekler ve birkaç farklı örneği projemize eklediğimizde aşağıdaki şekilde bir ekran görüntüsüyle karşılaşacağız webpartımızın editorpartında.

image002

Toolparta girdiğimiz bilgilerin webpartın “Render” metodunda görüntülenebilmesi için ise standart .Net bilgimizden başka bir şeye ihtiyacımız yok.

protected override void RenderWebPart(HtmlTextWriter output)
{
output.Write(“<b>Stored Property Values</b>”);
output.Write(“<br><b>String: </b>” + this.MyString);
output.Write(“<br><b>Boolean: </b>” + this.MyBool.ToString());
output.Write(“<br><b>Int: </b>” + this.MyInt.ToString());
output.Write(“<br><b>Float: </b>” + this.MyFloat.ToString());
output.Write(“<br><b>DateTime: </b>” + this.MyDateTime.ToString());
output.Write(“<br><b>Enum: </b>” + this.MyEnum.ToString());
output.Write(“<br><b>Color Enum: </b>” + this.MyColor.ToString());
}

Evren AYAN
WSS Architecture MVP, ISPA Regional Evangelist

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
Web Partlarda Farkli Veri Turlerinde Toolpart Kullanimi için yorumlar kapalı  comments 
© Hakan UZUNER - MCT- MVP - RD
credit