27 Haziran 2013 Perşembe

WebPart Formunda SharePoint DateTime ve ASP.Net Required Field Validator Kontrolleri Kullanımı

SharePoint için custom WebPart form geliştirirken SharePoint DateTime kontrolü için zorunlu olduğunu vurgulamak için IsRequiredField="True" parametresini kullanabiliriz. Örnekte olduğu gibi;

<SharePoint:DateTimeControl ID="dtBelgeTarih" runat="server" DateOnly="True" IsRequiredField="True" />

Ancak bu şekilde kullandığımız zaman Tarih alanı boş geçildiğinde direkt olarak altına hata mesajını basmaktadır.


Ancak bu hata mesajının ErrorMessage="Belge tarihini boş geçemezsiniz!" şeklinde özelleştirebiliriz ancak mesajın çıkacağı yeri özelleştirememekteyiz. Bu sebeple Asp.Net te kullandığımız Required Field Validator ve Validation Summary kontrollerini kullanabiliriz. Ancak burada en dikkat edilmesi gereken durum ControlToValidate parametresinde SharePoint kontrolünün ID sinin intelli-sence de gelmemesidir. Bu noktada ControlToValidate parametresine aşağıdaki kontrolünün ID sini + $ + tekrar kontrolün ID si + Date şeklinde bir kullanımı gerekmektedir.
  
<SharePoint:DateTimeControl ID="dtBelgeTarih" runat="server" DateOnly="True" /> 

<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
ErrorMessage="Belge tarihini boş geçemezsiniz!" ControlToValidate="dtBelgeTarih$dtBelgeTarihDate" 
ForeColor="Red" Display="Dynamic">*</asp:RequiredFieldValidator>


Ayrıca Validation Summary nerede kullanırsak verilen HeaderText ifadesine ek olarak RequiredFieldValidator kontrolünde yazdığımız hata mesajı görünecektir.

<asp:ValidationSummary ID="ValSumBelgeForm" runat="server" ShowSummary="true" DisplayMode="List" ShowMessageBox="false" HeaderText="Aşağıdaki alanlar gerekli:" />



Yaralı olması dileğiyle...

25 Haziran 2013 Salı

Tarayıcı'nın Geri Butonunu Pasif Yapma (Disable Browser's Back Button)

Merhabalar,
Birçok form arayüzünden bilgi girişi yapıldıktan sonra geri dönülmesi ve bu bilgilerin tekrar girilmesi yada değiştirip tekrar girilmesi gibi türlü problemler ile karşılaşmaktayız.

Benimde başıma gelen sorunlardan birinde kullanıcı masraf formunu onaya gönderdikten sonra geri gelip aynı formu veya bir kısmını değiştirip tekrar yollaması gibi bir durum geldi. Bunu önlemek çin aşağıdaki JavaScript kod parçacığını kullandım. Sizlerle paylaşayım dedim.

İlgili SharePoint webpartın .ascx ine aşağıdaki kod parçacağını yazdığımızda webpartın bulunduğu sayfada Browser geri butonu önceki sayfaya geri dönmemektedir.

<script type="text/javascript">

    function DisableBackButton() {
        window.history.forward()
    }
    DisableBackButton();
    window.onload = DisableBackButton;
    window.onpageshow = function (evt) { if (evt.persisted) DisableBackButton() }
    window.onunload = function () { void (0) }
</script>

Yararlı olması dileğiyle..

19 Haziran 2013 Çarşamba

SharePoint Workflow Durum Değerleri (Workflow Status Values)

SharePoint 2013’de Visual WebPart geliştirirken onay iş akışı sonucu onaylanmış (Approved) edilmiş olan Liste öğelerini göstereceğim bir WebPart yaparken fark ettiğim ve aynı durumu XSLT Filter yaparken de tekrarladığım da gördüğüm durumdan bahsedeceğim. SharePoint te iş akışları durumu (Status) SPWorkflow enum’unda integer olarak tutulmaktadır. Filter ederken yada custom code içinde status durumuna bakarak bir işlem yapacak iseniz, aşağıda verdiğim integer değerlere bakmanız gerekmekte. 




NotStarted = 0
FailedOnStart = 1
InProgress = 2
ErrorOccurred = 3
StoppedByUser = 4
Completed = 5
FailedOnStart(Retrying) = 6
ErrorOccurred(Retrying) = 7
ViewQueryOverflow = 8

Eğer, Onay iş akışı kullanıyorsanız da bu durum kodlarına ilave olarak aşağıdaki 15, 16, 17 kodları da dönebilir.

Canceled = 15
Approved = 16
Rejected = 17


Bu durum değerleri hem SharePoint 2010 hemde SharePoint 2013 için geçerlidir. 
Yararlı olması dileğiyle…

17 Haziran 2013 Pazartesi

SharePoint 2013' te Liste ve Kütüphaneleri Browser'dan Gizleme (Hide from browser)

Bir arkadaşımın sorması üzerine aklıma geldi paylaşayım dedim bu konuyu. Örnek durum şöyle olsun bir doküman portali yaptınız ve kişilerin yetkisini bir listede tutuyorsunuz. Bu listenin Site İçeriği tarafında görülebilir olduğunu fark ettiniz. Tabiki bu listenin erişim okuma hakkı belirli kullanıcılarda olsa da listenin Site İçeriği yönetim tarafında görünmemesini istiyorsunuz. Liste yada Kütüphaneyi tarayıcıda görünümünü gizlemenin birçok yolu var tabiki.  En kolay yollarından birini anlatacağım.

Site İçeriği görünümü aşağıdaki gibi iken gizlemek istediğimiz Listemiz ilk başta görünmektedir. Örnekte Belge Yetki Kategorileri adındaki liste ile çalışacağız. 



SharePoint Designer 2013 ile SharePoint portalinizi Full Control yetkisine sahip bir kullanıcı ile açınız.
Sol panelde yer alan Lists and Libraries başlığına tıklayınız. Sağ panelde Sitede mevcut görünen tüm liste ve kütüphaneleri göreceksiniz. Burada gizlemek istediğimiz Liste yada kütüphaneye sağ tıklayıp List Settings ‘e giriyoruz.


Karşımıza Liste veya Kütüphane ayarlarını yapabileceğimiz bir ekran gelecektir. Aşağıdaki ekran görüntüsünde olduğu gibi General Sesttings kısmında Hide from browser diye bir seçenek vardır. Bu seçeneği tıklayınız ve ayarları kaydediniz.

Tekrar web tarayıcısına gidip Site İçeriği sayfasını yenilediğimizde ilgili Liste veya Kütüphanenin görünmediği görülecektir. İşlem tamamdırJ Listemizi browser üzerinde artık görünmez hale getirmiş oldunuz.



Yaralı olması dileğiyle...



      

11 Haziran 2013 Salı

SharePoint 2013 'te Siteyi Şablon Olarak Kaydetme ve Şablondan Yeni Alt Site Oluşturma

SharePoint projelerinde çok kullandığım bir yöntemden bahsedeceğim. Örneğin bir kurumun portalini yapıyorsunuz. Sizden istedikleri ana bir portale ek olarak her biriminde kendi portali olsun diye istenmekte. Bu noktada her site için listeleri, kütüphaneleri oluşturma, geliştirme ve tasarım çok zaman alacaktır ve aynı işin tekrarlanması anlamına gelecektir. 

Bu gibi durumlarda birisi için geliştirmiş olduğumuz yapıyı şablon (template) olarak kaydedip yeni portal oluştururken varolan şablonlar yerine şablon olarak kaydettiğimiz portali kullanabiliriz. Şablon olarak kaydetme ve bu şablondan site oluşturma süreci için aşağıdaki adımları izleyebilirsiniz.

İdeal portali oluşturduktan sonra sağ üstteki ayar butonunu kullanarak Site Ayarlarına giriniz. Burada Site Eylemleri başlığı altında Siteyi Şablon olarak kaydet linkine tıklayınız.



Sonrasında karşımıza aşağıdaki gibi Şablon Olarak Kaydetme ekranı gelecektir bu ekran da Dosya Adı ve görülecek olan Şablon Adını giriniz. Ayrıca oluşturulacak şablon içerisinde içerikte olsun istiyorsanız İçerik Ekleme seçeneğini seçiniz ve Tamam butonuna tıklayınız. 



İşlem portalin içerik miktarına göre biraz zaman alacaktır. Sonrasında aşağıdaki ekran gibi bir ekranda İşlem Başarıyla Tamamlandı yazısı çıkacaktır. İsterseniz Tamam diyerek çıkabilir yada oluşturulmuş şablonu Çözüm Galerisinde görmek için çözüm galerisi linkine tıklayınız.

Çözüm galerisinde ise bizim yüklediğimiz yada biraz önce yaptığımız gibi şablon çözümleri yer almaktadır. Burada yer alan çözümleri etkin yada aktif duruma taşıyabiliriz.


Şablonu kullanarak yeni alt site oluşturmak için Site İçeriğinde alt tarafta yer alan Yeni Alt Site linkine tıklayarak aşağıdaki ekrana geliniz. Bu ekranda Şablon Seçimi bölümünde Özel sekmesi altında oluşturduğumuz şablon yer almaktadır. Bu şablonu seçiniz ve gerekli alanları girerek sitenizi şablondan oluşturabilirsiniz.   






2 Haziran 2013 Pazar

SharePoint 2013'te Visual Studio 2012 Debug Çok Yavaş Sorunu Çözümü

SharePoint için Visiual Studio ile ister WebPart olsun ister Event receiver gibi herhangi custom çözüm (solution) geliştirirken sık sık debug yapma ihtiyacı duyarız. Visual Studio 2012 de geliştirme yaparken debug etme noktasında uygulamanın derleme sonrası Break Pointe çok uzun süre sonrasında düşmesi geliştirme yaparken çok fazla zaman kaybına sebep olmakta. İnternet üzerinde bu çok yavaş debug etme olayına çok değişik çözüm önerisi olsa da net bir cevap bulamamıştım.

Sonunda geçen aylarda sorunu çözdüm. Visual Studio 2012 de varsayılan olarak açık gelen Enabled IntelliTrace özelliğini check’i kaldırarak disabled ediyoruz.   

Aşağıdaki ekranda göründüğü gibi Tools --> Option --> IntelliTrace --> Check işaretini kaldırınız. 



Ayrıca debug’a başlamak için F5 kullanmayınız. Bunun yerine Yeşil ok şeklinde olan başlat butonuna tıklayarak debuğ ı başlatırsanız daha hızlı debug edeceksiniz. Bu işlemler sonrasında Debug yaptığımızda gerçekten çok fazla hızlandı. Solutionı deploy etme ile aynı vakitte break pointe düşmüştür.

Yararlı olması dileğiyle...