วันศุกร์ที่ 2 ตุลาคม พ.ศ. 2552

Generic of

เทียบง่ายๆ ลักษณะของ คำถาม คำตอบ จะเป็น 1 to many คือ หนึงคำถามมีได้มากกว่า หนึ่งคำตอบ ถ้าเราจะเปลี่ยนจากลักษณะของการทำงานแบบ DataSet มาเป็น List แล้วจะต้องทำแบบนี้ 

public class Question
{
public string Topic {get ; set; }
public string CreatedBy { get; set;}
public List Answer {get; set;}
}

public class Answer
{
public string Detail{get; set;}
public string AnswerBy {get; set;} }

// เวลาใช้ก็แบบนี้
Question q = new Question(); 
q.Answer.Add(new Answer()); 

// การเข้าถึง List ข้างในก็

foreach foreach(Answer a in q.Answer) 
{ string jj = a.Detail; } 

[ฮิ_ฮิ]


ทำไม่ Tag T ไม่ขึ้นฟระ

วันจันทร์ที่ 21 กันยายน พ.ศ. 2552

ว้าว JQuery

ตื่นตัวช้าไปหน่อยสำหรับ libary ของตัว JQuery พอได้ไปอ่านบทความต่างๆที่ http://www.jquery.com/ ต้องบอกว่ามันน่าสนใจมากๆ เนื่องจากมี method ง่ายๆให้ใช้งานเยอะแยะ ที่สำคัญคือ cross browser และ มันเอาไปใช้กับ SharePoint ได้ดีทีเดียว ( ลองเอา fisheye ไปใช้แล้ว ok เลย ) น่าจะมาช่วย SharePoint ที่ไม่ support toolkits ของ Ajax วิธีใช้ก็ง่ายมั่กๆ ไป download file .Js ที่ http://www.jquery.com/ ( jqueryxxxx.js) จากนั้นก็ Src ธรรมดาภายใต้ tag head เสร็จแล้ว ( ^0^ ) แล้วจะเขียนอะไรก็เขียนเลย เป็นลักษณะ javascript กับ css เป็นหลัก นอกจากนี้ยังสามารถไปโหลด plugin ต่างๆ มาใช้งานได้อีกด้วย ซึ่งมันก็เหมือนๆ กับ toolkits ของ ajax น่ะแหล่ะ ยัง ยังไม่พอ Visual Studio 2008 ยังแสดง intellisense ได้อีกตะหาก โดยการ เพิ่มไฟล์ ที่ชื่อเดียวกับ jqueryxxxx.js แต่มี -doc เข้าไปใน tag head ด้วย ( วางไว้ที่เดียวกัน ) เยี่ยม !!!!

OWA + SharePoint Webpart

Moss2007 + OWA2003 มีปัญหาในกรณีเขียน WP ไป ติดต่อ Inbox , Contact , Task , bla bla แล้วอยู่หน้าเดียวกันไม่ได้ วิธีแก้ ให้ใช้ Iframe ชี้ไปที่ OWA URL แทน แล้วตามด้วย command แบบนี้ string mailcontent = "/tasks?cmd=contents&part=1"; string loginname = SPContext.Current.Web.CurrentUser.LoginName; string account = loginname.Remove(0, loginname.IndexOf("\\") + 1); string mail = account + "@owa.com"; string URL = @"http://mail.owa.com/exchange/" + mail + mailcontent; // ConfigurationManager.AppSettings["ExchangeServerUrl"]; this.frame.Attributes.Add("src", URL); หรืออีกวิธีก็คือ ไปสร้าง Aspx มาแต่ละ box แล้วใช้ wp PageViewer ชี้ไปแต่ละ page ( จริงๆ มันก็ IFrame แหล่ะนะ - -a ) อีกวิธีนึง แบบ new instance OWATasksPart wptask = new OWATasksPart(); wptask.Title = "My Task"; string workmail = SPContext.Current.Web.CurrentUser.Email; string mailcontent = "/cmd=contents&module=tasks"; wptask.MailboxName = workmail; wptask.OWAServerAddressRoot = @"http://mail.owa.com/exchange" + workmail + mailcontent; // ConfigurationManager.AppSettings["ExchangeServerUrl"]; wptask.Height = "500"; wptask.Width = "400"; Controls.Add(wptask); base.CreateChildControls(); คิดว่าถ้าเป็น owa 2007 น่าจะ smooth ( มั้ง ) ไม่มีให้ลองซะงั้น -"-

วันพฤหัสบดีที่ 24 กรกฎาคม พ.ศ. 2551

การสร้าง Site ผ่าน WebService ของ Sharepoint

[SoapDocumentMethodAttribute("http://schemas.microsoft.com/sharepoint/soap/CreateSite", RequestNamespace="http://schemas.microsoft.com/sharepoint/soap/", ResponseNamespace="http://schemas.microsoft.com/sharepoint/soap/", Use=SoapBindingUse.Literal, ParameterStyle=SoapParameterStyle.Wrapped)] public string CreateSite ( string Url, string Title, string Description, int Lcid, string WebTemplate, string OwnerLogin, string OwnerName, string OwnerEmail, string PortalUrl, string PortalName ) Value Site Definition STS#0 Team Site STS#1 Blank Site STS#2 Document Workspace MPS#0 Basic Meeting Workspace MPS#1 Blank Meeting Workspace MPS#2 Decision Meeting Workspace MPS#3 Social Meeting Workspace MPS#4 Multipage Meeting Workspace BLOG#0 Blog Site WIKI#0 Wiki Site Example Web_Reference_Folder_Name.Admin admService = new Web_Reference_Folder_Name.Admin(); admService.Credentials= System.Net.CredentialCache.DefaultCredentials; try { admService.CreateSite("http://Server_Name/sites/SiteCollection_Name", "Title", "Description", 1033, "STS#0", "Domain_Name\\User_Alias","User_Display_Name", "User_E-mail","",""); } catch (System.Web.Services.Protocols.SoapException ex) { MessageBox.Show("Message:\n" + ex.Message + "\nDetail:\n" + ex.Detail.InnerText + "\nStackTrace:\n" + ex.StackTrace); } Ref : http://msdn.microsoft.com/en-us/library/administration.admin.createsite.aspx