18 Şubat 2009 Çarşamba

MOSS 2007'de anketin Özelleştirilmesi

Bu ilk blogumda daha evvel değinilmemiş bir konuya değinerek başlamak istiyorum. Bulundugum proje kapsamında MOSS'un özel listelerinden "Anket" listesini özelleştirmem istendi. Olusturulacak anketlerin bir giriş yazısı, bir teşekkür yazısı olması isteniyordu. Anketi dolduracak kişileri olusturacağım giriş sayfasına yollamak bir sorun değildi, fakat anketin bittiğini nasıl anlayıp son sorudan sonra kullanıcıyı teşekkür sayfasına gönderecektim? Mevcut anket listesinde böyle bir özellik olmadıgından custom bir Anketler isminde liste yaratarak işe başladım. Bu listede Giriş yazısı, Teşekkür yazısı, Anket Adı, Url kolonlarını olusturdum. Anket olusturmak isteyen yetkili kimse önce bu listeye bir item ekleyerek işe başlayacaktı. Yazdıgım ItemEventReceiver'in itemAdded metodunu override ederek işe başladım. Bu metod kullanıcının girdiği anket adına göre benim özelleştirdiğim anket Template inden bir anket yaratacak ve bu anketin Url ini set edecekti.


class AnketItemEventReceiver : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
SPWeb currentWeb = properties.OpenWeb();
SPListItem item = properties.ListItem;
currentWeb.AllowUnsafeUpdates = true;
SPFieldUrlValue urlValue = new SPFieldUrlValue();
urlValue.Description = "Anket Url";

urlValue.Url = currentWeb.Url + "/Lists/" + item["Anket_x0020_Ad_x0131_"].ToString() + "/overview.aspx";
item["Url"] = urlValue;
item.Update();

SPListTemplate objTemplate = currentWeb.Site.GetCustomListTemplates(currentWeb.Site.RootWeb)["Anket Şablonu"];

Guid objGuid = currentWeb.Lists.Add(item["Anket_x0020_Ad_x0131_"].ToString(), "survey", objTemplate);
}
}

Bu ilk blogumda herseyi anlatmayıp merakı canlı tutmak adına bana verilen bu taskı gerçekleştirmek için yaptıgım diğer hareketleri bir sonraki bloguma saklıyorum. Bu blogumla beraber bir ItemEventReceiver'in nası yazılacağı, Sharepoint object model yardımıyla olusturulan bir şablondan programatik olarak bir liste yaratılmasını görmüş olduk.
Bir sonraki blogumda görüşmek üzere

1 yorum:

  1. Blogun hayırlı olsun Emir. Eminim birçok yazılımcı için güzel bir rehber olacaktır. Paylaşmanın keyfini uzun yıllar yaşaman dileğiyle...

    YanıtlaSil