|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sharepoint Türkiye > Blog > Kategoriler
|
23.02.2010
Aşağıda yer alan kod bloğu yardımıyla LINQ kullanarak Sharepoint'te bir listeye erişebilirsiniz. Kodu çalıştırmadan önce SPMetal Utilitysi yardımıyla Entitie collectionınızı yaratmalısınız.
protected void Page_Load(object sender, EventArgs e) {
StringBuilder strContent = new StringBuilder();
try { using(EntitiesDataContext context = new EntitiesDataContext("http://sharepoint/Development")) { var q = from companie in context.Companies select new { companie.Title };
strContent.Append("<table border=\"1\" cellpadding=\"3\" cellspacing=\"3\">");
foreach (var companie in q) { strContent.Append("<tr><td>" + companie.Title + "</td></tr>"); }
strContent.Append("</table>"); } }
catch (Exception ex) { strContent.Append(ex.ToString()); }
mainDiv.InnerHtml = strContent.ToString(); }
Örnek uygulamayı download etmek için aşağıdaki bağlantıyı kullanabilirsiniz.
LINQVisualWebPartSample.zip (124,08 KB) 29.01.2010Kullanmanız gereken using değerleri
using Microsoft.SharePoint; using Microsoft.Office.Server; using Microsoft.Office.Server.UserProfiles;
Ve kod
try { site = SPContext.Current.Site; ServerContext serverContext = ServerContext.GetContext(site); UserProfileManager userProfileManager = new UserProfileManager(serverContext); UserProfile currentUserUserProfile = userProfileManager.GetUserProfile(System.Web.HttpContext.Current.User.Identity.Name);
string nameSurname = (string)currentUserUserProfile["preferredname"].Value; string email = (string)currentUserUserProfile["workemail"].Value; string companyName = (string)currentUserUserProfile["company"].Value; } finally { site.RootWeb.Dispose(); site.Dispose(); } 28.01.2010 static void Main(string[] args) { SPSite site = null; SPWeb web = null;
try { site = new SPSite("http://testSite/SubWeb/Pages/"); web = site.OpenWeb(); PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web); SPContentTypeId contentType = new SPContentTypeId("YourContentTypeId"); PageLayout[] layouts = publishingWeb.GetAvailablePageLayouts(contentType); PageLayout pageLayout = layouts[0]; string pageName = Guid.NewGuid().ToString() + ".aspx";
SPUser user = web.EnsureUser("DOMAIN\\USERNAME"); string createdDate = "2009-11-05T22:35:10Z"; string modifiedDate = "2009-11-05T22:35:10Z";
web.AllowUnsafeUpdates = true; PublishingPage newPage = publishingWeb.GetPublishingPages().Add(pageName, pageLayout);
newPage.ListItem["Author"] = user.ID; newPage.ListItem["Editor"] = user.ID; newPage.ListItem["Created"] = createdDate; newPage.ListItem["Modified"] = modifiedDate; newPage.ListItem.UpdateOverwriteVersion();
web.AllowUnsafeUpdates = false;
Console.WriteLine("OK"); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); Console.ReadLine(); } finally { web.Dispose(); site.RootWeb.Dispose(); site.Dispose(); } } Sharepoint Object Modelini kullanarak geliştirdiğiniz uygulamalarda Lookup türündeki alanlarda bulunan verileri okumak yada bu tip alanlara değer atamak problemli olabilecektir. Bu durumda aşağıdaki şekilde SPFieldLookupValue türünde bir nesne yaratarak lokupa ait değeri ilgili alana atayabilirsiniz.
SPFieldLookupValue category = new SPFieldLookupValue(1, "Books");
Atamış olduğunuz bu değeri yine aşağıdaki şekilde de okuyabilirsiniz.
item["Category"] = category; 16.11.2009 TextBox txtAuto = new TextBox(); AutoCompleteExtender autoCompleteTxt = new AutoCompleteExtender(); HtmlGenericControl div = new HtmlGenericControl("div");
protected override void CreateChildControls() { try { txtAuto.Attributes.Add("id", "txtAutoCompleteBox"); txtAuto.ID = "txtAutoCompleteBox";
this.Controls.Add(txtAuto);
autoCompleteTxt.ID = "autoComplete"; autoCompleteTxt.ServicePath = "/services/service.asmx"; autoCompleteTxt.ServiceMethod = "getItemList";
autoCompleteTxt.MinimumPrefixLength = 1; autoCompleteTxt.CompletionSetCount = 15; autoCompleteTxt.TargetControlID = "txtAutoCompleteBox"; autoCompleteTxt.BehaviorID = "autoComplete"; this.Controls.Add(autoCompleteTxt); } catch (Exception ex) { throw ex; } } Sharepoint Object Model yardımıyla SSP tarafında tutulmakta olan user profile bilgilerine erişebilirsiniz. Bu işlem için kullanacağınız projenize öncelikle;
using Microsoft.SharePoint; using Microsoft.Office.Server; using Microsoft.Office.Server.UserProfiles;
namespacelerini ekleyin. Ardından hem varsayılan olarak bulunan hemde sizin tarafınızdan eklenmiş profil özelliklerine erişmek için aşağıdaki kod bloğunu kullanabilirsiniz.
try { site = SPContext.Current.Site; ServerContext serverContext = ServerContext.GetContext(site); UserProfileManager userProfileManager = new UserProfileManager(serverContext); UserProfile currentUserUserProfile = userProfileManager.GetUserProfile(System.Web.HttpContext.Current.User.Identity.Name);
user.NameSurname = (string)currentUserUserProfile["preferredname"].Value; user.EMail = (string)currentUserUserProfile["workemail"].Value; user.CompanyName = (string)currentUserUserProfile["company"].Value; user.FunctionalGroup = (string)currentUserUserProfile["functionalgroup"].Value; user.Division = (string)currentUserUserProfile["department"].Value; user.Unit = (string)currentUserUserProfile["unitname"].Value; user.Team = (string)currentUserUserProfile["team1name"].Value; } catch (Exception ex) {
} finally { site.RootWeb.Dispose(); site.Dispose(); }
02.04.2009Rafet Cambaz tarafından geliştirilen ve Codeplex üzerinden yayınlanmakta olan Silver Moss Chart Sharepoint listelerinin barındırdığı verileri kolay bir şekilde Silverlight tabanlı bir chart olarak karşınıza getirebiliyor.
Arayüzü aracılığı ile liste değişimi, chart türü değişimi gibi işlemleri gerçekleştirebildiğiniz çalışma Codeplex üzerinden kaynak kodları açık olarak yayınlanıyor.
31.03.2009Sharepoint içerisinde timer son derece önemli bir yer kaplıyor. Pek çok işlem tanımlanmış timer görevleri olarak sistem içerisindeki yerini alıyor ve zamanı geldiğinde çalıştırılıyor. Örneğin alert emaillerinin gönderilmesi, cleanup sihirbazının çalıştırılması, backup işleminin yapılması gibi...
Timer joblarını programatik olarak tetiklemek ve execute etmek istiyorsanız kullanabileceğiniz örnek kod bloğu aşağıdaki şekilde olabilir.
foreach(SPJobDefinition job in site.WebApplication.JobDefinitions)
{
if(job.Name == "Workflow Auto Cleanup")
{
job.Execute(new Guid("C9CBB265-FB94-497f-8AC0-E99CDFBC4F52"));
}
} 25.03.2009Sharepoint Object Model'ini kullanarak pek çok işlem yapabildiğimizi biliyoruz. Aşağıdaki kod bloğu top navigation bar olarak adlandırdığımız üst menüye yeni bir kaydın nasıl eklenebileceğini anlatıyor.
SPWeb objWeb = SPContext.Current.Web;
SPNavigationNodeCollection topNavigationNodes = objWeb.Navigation.TopNavigationBar;
SPNavigationNode objItem = new SPNavigationNode("Başlık", "Adres", false);
topNavigationNodes.AddAsFirst(objItem);
objWeb.Update(); 15.03.2009public void UploadFile(string srcUrl, string destUrl) { if (!File.Exists(srcUrl)) { throw new ArgumentException(String.Format("{0} does not exist", srcUrl), "srcUrl"); }
SPWeb site = new SPSite(destUrl).OpenWeb();
FileStream fStream = File.OpenRead(srcUrl); byte[] contents = new byte[fStream.Length]; fStream.Read(contents, 0, (int)fStream.Length); fStream.Close();
EnsureParentFolder(site, destUrl); site.Files.Add(destUrl, contents); }
|
|
|
|
|
|
|
|
 |
 |
Copyright (c), 2008-2009 Sharepoint Türkiye
Site içerisinde yayınlanan
tüm makale ve dokümanların yazım ve yayınlama hakkı aksi belirtilmediği
sürece sadece yazarlara aittir.
Yayınlanan yazıların izin alınmadan kopyalanması ve kullanılması
5846 sayılı Fikir ve Sanat Eserleri Yasasına göre suçtur. |
 |
|