Exercise : Tìm hiểu về Object Model nâng cao trong WebPart
· Tiếp tục với WebPartSoln
v Exercise 01: Chuẩn bị tài nguyên cho webpart
Ø Thêm mới Class Library Project tên là MoreObjectModelWebPart
Ø Click vào References | R-Right | Add Reference
Ø Chọn Microsoft.Sharepoint.Dll vào thư mục của WebPartSoln
Ø Tiếp tục chọn Tab .NET | System.Web
§ Khai báo Using
· using System.Web;
· using System.Web.UI;
· using Microsoft.SharePoint;
· using Microsoft.SharePoint.WebPartPages;
· using System.Web.UI.WebControls;
§ Khai báo kế thừa từ WebPart Class cho Class1
Ø Chọn Microsoft.Sharepoint.Dll vào thư mục của WebPartSoln
Ø Vào thư mục Properties mở file AssemblyInfo.cs
§ Di chuyển xuống phần cuối cùng của File AssemblyInfo.cs, thêm vào : (tùy với vị trí đặt Hkgsolution.snk).
· [assembly: AssemblyKeyFile("..\\hkgsolution.snk")]
Ø Build project ở chế độ Release và succsessfull
Exercise 02: Object Model nâng cao trong WebPart
Ø Tiếp tục với MoreObjectModelWebPart project
Ø Đổi Class1 thành SPViewWebPart.cs
Ø Khai báo code trong phương thức CreateChildControls
§ Khai báo và khởi tạo Literal literalForList
· Gán “List: ” cho thuộc tính Text của literalForList
· Thêm literalForList vào webpart
Literal literalForList = new Literal();
literalForList.Text = "List: ";
this.Controls.Add(literalForList);
§ Khai báo và khởi tạo DropDownList tên ddlList
· Khai báo sự kiện Load để hiển thị tất cả List của site hiện hành đến ddlList
· Thêm ddlList vào webpart
ddlList = new DropDownList();
ddlList.AutoPostBack = true;
ddlList.Load += new EventHandler(ddlList_Load);
this.Controls.Add(ddlList);
void ddlList_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ddlList.Items.Clear();
SPSite spSite = SPControl.GetContextSite(Context);
SPWeb spWeb = spSite.OpenWeb();
foreach (SPList spList in spWeb.Lists)
{
ddlList.Items.Add(new ListItem(spList.Title, spList.ID.ToString()));
}
}
}
§ Khai báo và khởi tạo Literal literalForView
· Gán “View: ” cho thuộc tính Text của literalForView
· Thêm literalForView vào webpart
Literal literalForView = new Literal();
literalForView.Text = "View: ";
this.Controls.Add(literalForView);
§ Khai báo và khởi tạo DropDownList tên ddlView
· Thêm ddlList vào webpart
· Khai báo sự kiện SelectedIndexChanged để hiển thị tất cả View của ddlList đã chọn
ddlView = new DropDownList();
this.Controls.Add(ddlView);
ddlList.SelectedIndexChanged += new EventHandler(ddlList_SelectedIndexChanged);
void ddlList_SelectedIndexChanged(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
ddlView.Items.Clear();
ShowView(spSite);
}
private void ShowView(SPSite spSite)
{
SPWeb spWeb = spSite.OpenWeb();
SPListCollection listCollection = spWeb.Lists;
SPList spList = listCollection[new Guid(ddlList.SelectedValue)];
ddlView.Items.Clear();
foreach (SPView spView in spList.Views)
{
ddlView.Items.Add(new ListItem(spView.Title, spView.ID.ToString()));
}
}
Ø Thêm SPViewWebPart.dwp
Ø Build project chế độ Release và Deploy WebPart
§ Copy MoreObjectModelWebPart.dll đến thư mục bin
§ Copy SPViewWebPart.dwp đến thư mục wpcatalog
§ Thêm thẻ <SafeControl>
Ø Quay lại sharepoint site
§ Thêm WebPart này đến WebPart page
using System;
using System.Web;
using System.Web.UI;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
using System.Web.UI.WebControls;
using Microsoft.SharePoint.WebControls;
namespace MoreObjectModelWebpart
{
public class SPViewWebPart:WebPart
{
DropDownList ddlList;
DropDownList ddlView;
protected override void CreateChildControls()
{
Literal literalForList = new Literal();
literalForList.Text = "List: ";
this.Controls.Add(literalForList);
ddlList = new DropDownList();
ddlList.AutoPostBack = true;
ddlList.Load += new EventHandler(ddlList_Load);
this.Controls.Add(ddlList);
Literal literalForView = new Literal();
literalForView.Text = "View: ";
this.Controls.Add(literalForView);
ddlView = new DropDownList();
this.Controls.Add(ddlView);
ddlList.SelectedIndexChanged += new EventHandler(ddlList_SelectedIndexChanged);
}
void ddlList_SelectedIndexChanged(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
ddlView.Items.Clear();
ShowView(spSite);
}
private void ShowView(SPSite spSite)
{
SPWeb spWeb = spSite.OpenWeb();
SPListCollection listCollection = spWeb.Lists;
SPList spList = listCollection[new Guid(ddlList.SelectedValue)];
ddlView.Items.Clear();
foreach (SPView spView in spList.Views)
{
ddlView.Items.Add(new ListItem(spView.Title, spView.ID.ToString()));
}
}
void ddlList_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ddlList.Items.Clear();
SPSite spSite = SPControl.GetContextSite(Context);
SPWeb spWeb = spSite.OpenWeb();
foreach (SPList spList in spWeb.Lists)
{
ddlList.Items.Add(new ListItem(spList.Title, spList.ID.ToString()));
}
}
}
}
}
v Exercise 03: Cách tạo View cho List
Ø Tiếp tục với MoreObjectModelWebPart project
Ø Thêm mới Class SPViewManagerWebPart.cs
Ø Khai báo code trong phương thức CreateChildControls
§ Khai báo và khởi tạo Literal literalForList
· Gán “List: ” cho thuộc tính Text của literalForList
· Thêm literalForList vào webpart
Literal literalForList = new Literal();
literalForList.Text = "List: ";
this.Controls.Add(literalForList);
§ Khai báo và khởi tạo DropDownList tên ddlList
· Khai báo sự kiện Load để hiển thị tất cả List của site hiện hành đến ddlList
· Thêm ddlList vào webpart
ddlList = new DropDownList();
ddlList.Load += new EventHandler(ddlList_Load);
this.Controls.Add(ddlList);
void ddlList_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ddlList.Items.Clear();
SPSite spSite = SPControl.GetContextSite(Context);
SPWeb sqWeb = spSite.OpenWeb();
foreach (SPList spList in sqWeb.Lists)
{
ddlList.Items.Add(new ListItem(spList.Title, spList.ID.ToString()));
}
}
}
§ Khai báo và khởi tạo Literal literalForView
· Gán “View: ” cho thuộc tính Text của literalForView
· Thêm literalForView vào webpart
Literal literalForView = new Literal();
literalForView.Text = "View Name: ";
this.Controls.Add(literalForView);
§ Khai báo và khởi tạo TextBox tên txtView
· Thêm txtView vào webpart
txtView = new TextBox();
this.Controls.Add(txtView);
§ Khai báo và khởi tạo Button tên btnCreate, Text là Create
· Khai báo sự kiện Click của btnCreate để tạo mới View cho List đã chọn ở ddlList
· Thêm btnCreate vào webpart
Button btnCreateView = new Button();
btnCreateView.Text = "Create";
btnCreateView.Click += new EventHandler(btnCreateView_Click);
this.Controls.Add(btnCreateView);
void btnCreateView_Click(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
AddView(spSite);
}
private void AddView(SPSite spSite)
{
SPWeb spWeb = spSite.OpenWeb();
SPListCollection listCollection = spWeb.Lists;
SPList spList = listCollection[new Guid(ddlList.SelectedValue)];
Literal literalError = new Literal();
this.Controls.Add(literalError);
spWeb.AllowUnsafeUpdates = true;
System.Collections.Specialized.StringCollection columnCollection = newSystem.Collections.Specialized.StringCollection();
columnCollection.Add("Title");
spList.Views.Add(txtView.Text, columnCollection, @"", 100, true, true);
spList.Update();
spWeb.AllowUnsafeUpdates = false;
literalError.Text = "Add View Successfull";
}
Ø Thêm SPViewManagerWebPart.dwp
Ø Build project chế độ Release và Deploy WebPart
§ Copy SPViewManagerWebPart.dwp đến thư mục wpcatalog
Ø Quay lại sharepoint site
§ Thêm WebPart này đến WebPart page
using System;
using System.Web;
using System.Web.UI;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
using System.Web.UI.WebControls;
using Microsoft.SharePoint.WebControls;
namespace MoreObjectModelWebpart
{
public class SPViewManagerWebPart:WebPart
{
DropDownList ddlList;
TextBox txtView;
protected override void CreateChildControls()
{
Literal literalForList = new Literal();
literalForList.Text = "List: ";
this.Controls.Add(literalForList);
ddlList = new DropDownList();
ddlList.Load += new EventHandler(ddlList_Load);
this.Controls.Add(ddlList);
Literal literalForView = new Literal();
literalForView.Text = "View Name: ";
this.Controls.Add(literalForView);
txtView = new TextBox();
this.Controls.Add(txtView);
Button btnCreateView = new Button();
btnCreateView.Text = "Create";
btnCreateView.Click += new EventHandler(btnCreateView_Click);
this.Controls.Add(btnCreateView);
}
void btnCreateView_Click(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
AddView(spSite);
}
private void AddView(SPSite spSite)
{
SPWeb spWeb = spSite.OpenWeb();
SPListCollection listCollection = spWeb.Lists;
SPList spList = listCollection[new Guid(ddlList.SelectedValue)];
Literal literalError = new Literal();
this.Controls.Add(literalError);
spWeb.AllowUnsafeUpdates = true;
System.Collections.Specialized.StringCollection columnCollection = newSystem.Collections.Specialized.StringCollection();
columnCollection.Add("Title");
spList.Views.Add(txtView.Text, columnCollection, @"", 100, true, true);
spList.Update();
spWeb.AllowUnsafeUpdates = false;
literalError.Text = "Add View Successfull";
}
void ddlList_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ddlList.Items.Clear();
SPSite spSite = SPControl.GetContextSite(Context);
SPWeb sqWeb = spSite.OpenWeb();
foreach (SPList spList in sqWeb.Lists)
{
ddlList.Items.Add(new ListItem(spList.Title, spList.ID.ToString()));
}
}
}
}
}
v Exercise 04: Cách hiển thị Field của SPList hoặc SPView
Ø Tiếp tục với MoreObjectModelWebPart project
Ø Thêm mới Class SPFieldManagerWebPart.cs
Ø Trong phương thức CreateChildControls khai báo thêm
§ Khai báo và khởi tạo Literal literalForList
· Gán “List: ” cho thuộc tính Text của literalForList
· Thêm literalForList vào webpart
Literal literalForList = new Literal();
literalForList.Text = "List For Field: ";
this.Controls.Add(literalForList);
§ Khai báo và khởi tạo DropDownList tên ddlList
· Khai báo sự kiện Load để hiển thị tất cả List của site hiện hành đến ddlList
· Thêm ddlList vào webpart
ddlList = new DropDownList();
ddlList.AutoPostBack = true;
ddlList.Load += new EventHandler(ddlList_Load);
this.Controls.Add(ddlList);
void ddlList_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ddlList.Items.Clear();
SPSite spSite = SPControl.GetContextSite(Context);
SPWeb spWeb = spSite.OpenWeb();
foreach (SPList spList in spWeb.Lists)
{
ddlList.Items.Add(new ListItem(spList.Title, spList.ID.ToString()));
}
}
}
§ Khai báo và khởi tạo DropDownList tên ddlField
· Khai báo sự kiện SelectedIndexChanged để lấy giá trị trên ddlList và đổ tất cả các Field vào ddlField
· Thêm ddlField vào webpart
ddlField = new DropDownList();
this.Controls.Add(ddlField);
ddlList.SelectedIndexChanged += new EventHandler(ddlList_SelectedIndexChanged);
void ddlList_SelectedIndexChanged(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
ShowField(spSite, ddlList.SelectedValue.ToString());
}
private void ShowField(SPSite spSite, string listID)
{
ddlField.Items.Clear();
SPWeb spWeb = spSite.OpenWeb();
SPListCollection spListCollection = spWeb.Lists;
SPList spList = spListCollection[new Guid(listID)];
foreach (SPField spField in spList.Fields)
{
ddlField.Items.Add(new ListItem(spField.Title, spField.Id.ToString()));
}
}
Ø Thêm SPFieldManagerWebPart.dwp
Ø Build project chế độ Release và Deploy WebPart
Ø Quay lại sharepoint site
§ Refesh WebPart này
using System;
using System.Web;
using System.Web.UI;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
using System.Web.UI.WebControls;
using Microsoft.SharePoint.WebControls;
namespace MoreObjectModelWebpart
{
public class SPFieldManagerWebpart:WebPart
{
DropDownList ddlList;
DropDownList ddlField;
protected override void CreateChildControls()
{
Literal literalForList = new Literal();
literalForList.Text = "List For Field: ";
this.Controls.Add(literalForList);
ddlList = new DropDownList();
ddlList.AutoPostBack = true;
ddlList.Load += new EventHandler(ddlList_Load);
this.Controls.Add(ddlList);
ddlField = new DropDownList();
this.Controls.Add(ddlField);
ddlList.SelectedIndexChanged += new EventHandler(ddlList_SelectedIndexChanged);
}
void ddlList_SelectedIndexChanged(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
ShowField(spSite, ddlList.SelectedValue.ToString());
}
private void ShowField(SPSite spSite, string listID)
{
ddlField.Items.Clear();
SPWeb spWeb = spSite.OpenWeb();
SPListCollection spListCollection = spWeb.Lists;
SPList spList = spListCollection[new Guid(listID)];
foreach (SPField spField in spList.Fields)
{
ddlField.Items.Add(new ListItem(spField.Title, spField.Id.ToString()));
}
}
void ddlList_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ddlList.Items.Clear();
SPSite spSite = SPControl.GetContextSite(Context);
SPWeb spWeb = spSite.OpenWeb();
foreach (SPList spList in spWeb.Lists)
{
ddlList.Items.Add(new ListItem(spList.Title, spList.ID.ToString()));
}
}
}
}
}
v Exercise 05: Cách lấy dữ liêuh từ SPList
Ø Tiếp tục với MoreObjectModelWebPart project
Ø Thêm mới Class SPListItemWebPart.cs
Ø Khai báo code trong phương thức CreateChildControls
§ Khai báo và khởi tạo Literal literalForList
· Gán “List: ” cho thuộc tính Text của literalForList
· Thêm literalForList vào webpart
Literal literalForList = new Literal();
literalForList.Text = "List:";
this.Controls.Add(literalForList);
§ Khai báo và khởi tạo DropDownList tên ddlList
· Khai báo sự kiện Load để hiển thị tất cả List của site hiện hành đến ddlList
· Thêm ddlList vào webpart
ddlListForData = new DropDownList();
ddlListForData.AutoPostBack = true;
ddlListForData.Load += new EventHandler(ddlListForData_Load);
this.Controls.Add(ddlListForData);
void ddlListForData_Load(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
SPWeb spWeb = spSite.OpenWeb();
foreach (SPList spList in spWeb.Lists)
{
ddlListForData.Items.Add(new ListItem(spList.Title, spList.ID.ToString()));
}
}
§ Khai báo và khởi tạo GridView tên grvListItem
· Khai báo sự kiện SelectedIndexChanged để lấy giá trị trên ddlList và đổ tất cả các ListItem vào grvListItem
· Thêm grvListItem vào webpart
ddlListForData.SelectedIndexChanged += new EventHandler(ddlListForData_SelectedIndexChanged);
spGridView = new SPGridView();
spGridView.AutoGenerateColumns = false;
spGridView.GridLines = GridLines.Both;
spGridView.BackColor = Color.Azure;
spGridView.ForeColor = Color.Red;
void ddlListForData_SelectedIndexChanged(object sender, EventArgs e)
{
spGridView.Columns.Clear();
try
{
SPSite spSite = SPControl.GetContextSite(Context);
// literalError.Text += ShowDataTable(spSite);
ShowDataTable(spSite);
}
catch (Exception ex)
{
}
}
private void ShowDataTable(SPSite spSite)
{
try
{
SPWeb spWeb = spSite.OpenWeb();
SPList spList = spWeb.Lists[new Guid(ddlListForData.SelectedValue)];
SPView spView = spList.DefaultView;
spGridView.Columns.Clear();
spBoundField = new SPBoundField();
spBoundField.HeaderText = "EmployeeId";
spBoundField.DataField = "EmployeeId";
spBoundField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
spBoundField.ItemStyle.Wrap = false;
spGridView.Columns.Add(spBoundField);
this.Controls.Add(spGridView);
spBoundField = new SPBoundField();
spBoundField.HeaderText = "FirstName";
spBoundField.DataField = "FirstName";
spBoundField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
spBoundField.ItemStyle.Wrap = false;
spGridView.Columns.Add(spBoundField);
this.Controls.Add(spGridView);
spBoundField = new SPBoundField();
spBoundField.HeaderText = "LastName";
spBoundField.DataField = "LastName";
spBoundField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
spBoundField.ItemStyle.Wrap = false;
spGridView.Columns.Add(spBoundField);
this.Controls.Add(spGridView);
SPDataSource spDataSource = new SPDataSource();
spDataSource.List = spList;
spGridView.DataSource = spDataSource;
spGridView.DataBind();
}
catch (Exception ex)
{
}
}
Ø Thêm SPListItemWebPart.dwp
Ø Build project chế độ Release và Deploy WebPart
§ Copy SPListItemWebPart.dwp đến thư mục wpcatalog
Ø Quay lại sharepoint site
§ Thêm WebPart này đến WebPart page
using System;
using System.Web;
using System.Web.UI;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
using System.Web.UI.WebControls;
using Microsoft.SharePoint.WebControls;
using System.Drawing;
namespace MoreObjectModelWebpart
{
public class SPListItemWebPart:WebPart
{
DropDownList ddlListForData;
SPGridView spGridView;
SPBoundField spBoundField;
protected override void CreateChildControls()
{
Literal literalForList = new Literal();
literalForList.Text = "List:";
this.Controls.Add(literalForList);
ddlListForData = new DropDownList();
ddlListForData.AutoPostBack = true;
ddlListForData.Load += new EventHandler(ddlListForData_Load);
this.Controls.Add(ddlListForData);
ddlListForData.SelectedIndexChanged += new EventHandler(ddlListForData_SelectedIndexChanged);
spGridView = new SPGridView();
spGridView.AutoGenerateColumns = false;
spGridView.GridLines = GridLines.Both;
spGridView.BackColor = Color.Azure;
spGridView.ForeColor = Color.Red;
}
void ddlListForData_SelectedIndexChanged(object sender, EventArgs e)
{
spGridView.Columns.Clear();
try
{
SPSite spSite = SPControl.GetContextSite(Context);
// literalError.Text += ShowDataTable(spSite);
ShowDataTable(spSite);
}
catch (Exception ex)
{
}
}
private void ShowDataTable(SPSite spSite)
{
try
{
SPWeb spWeb = spSite.OpenWeb();
SPList spList = spWeb.Lists[new Guid(ddlListForData.SelectedValue)];
SPView spView = spList.DefaultView;
spGridView.Columns.Clear();
spBoundField = new SPBoundField();
spBoundField.HeaderText = "EmployeeId";
spBoundField.DataField = "EmployeeId";
spBoundField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
spBoundField.ItemStyle.Wrap = false;
spGridView.Columns.Add(spBoundField);
this.Controls.Add(spGridView);
spBoundField = new SPBoundField();
spBoundField.HeaderText = "FirstName";
spBoundField.DataField = "FirstName";
spBoundField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
spBoundField.ItemStyle.Wrap = false;
spGridView.Columns.Add(spBoundField);
this.Controls.Add(spGridView);
spBoundField = new SPBoundField();
spBoundField.HeaderText = "LastName";
spBoundField.DataField = "LastName";
spBoundField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
spBoundField.ItemStyle.Wrap = false;
spGridView.Columns.Add(spBoundField);
this.Controls.Add(spGridView);
SPDataSource spDataSource = new SPDataSource();
spDataSource.List = spList;
spGridView.DataSource = spDataSource;
spGridView.DataBind();
}
catch (Exception ex)
{
}
}
void ddlListForData_Load(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
SPWeb spWeb = spSite.OpenWeb();
foreach (SPList spList in spWeb.Lists)
{
ddlListForData.Items.Add(new ListItem(spList.Title, spList.ID.ToString()));
}
}
}
}
v Exercise 06: Cách thêm ListItem vào SPList
Ø Tiếp tục với MoreObjectModelWebPart project
Ø Thêm mới Class AddSPListItemWebPart.cs
Ø Khai báo code trong phương thức CreateChildControls
§ Khai báo và khởi tạo Literal literalForTitle
· Gán “Title: ” cho thuộc tính Text của literalForTitle
· Thêm vào literalForTitle webpart
Literal literalForList = new Literal();
literalForList.Text = "Title: ";
this.Controls.Add(literalForList);
§ Khai báo và khởi tạo TextBox tên txtTitle
· Thêm txtTitle vào webpart
txtTitle = new TextBox();
this.Controls.Add(txtTitle);
§ Khai báo và khởi tạo Button tên btnAddNew, text là Add New
· Khai báo sự kiện Click của btnCreate để thêm title của txtTitle vào MyCustomList
· Thêm btnAddNew vào webpart
Button btnAddNew = new Button();
btnAddNew.Text = "Add New";
btnAddNew.Click += new EventHandler(btnAddNew_Click);
this.Controls.Add(btnAddNew);
void btnAddNew_Click(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
AddListItem(spSite);
}
private void AddListItem(SPSite spSite)
{
try
{
using (SPWeb spWeb = spSite.OpenWeb())
{
SPList splist = spWeb.Lists["MyCustomList"];
SPListItemCollection spListItemCollection = splist.Items;
SPListItem item = spListItemCollection.Add();
item["OfficeID"] = txtTitle.Text;
item["OfficeName"] = txtTitle.Text;
item.Update();
}
}
catch (Exception ex)
{
}
}
Ø Build project chế độ Release và Deploy WebPart
Ø Quay lại sharepoint site
§ Refesh WebPart này
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
using Microsoft.SharePoint.WebControls;
using System.Drawing;
namespace MoreObjectModelWebpart
{
public class AddSPListViewWebPart : WebPart
{
TextBox txtTitle;
protected override void CreateChildControls()
{
Literal literalForList = new Literal();
literalForList.Text = "Title: ";
this.Controls.Add(literalForList);
txtTitle = new TextBox();
this.Controls.Add(txtTitle);
Button btnAddNew = new Button();
btnAddNew.Text = "Add New";
btnAddNew.Click += new EventHandler(btnAddNew_Click);
this.Controls.Add(btnAddNew);
}
void btnAddNew_Click(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
AddListItem(spSite);
}
private void AddListItem(SPSite spSite)
{
try
{
using (SPWeb spWeb = spSite.OpenWeb())
{
SPList splist = spWeb.Lists["MyCustomList"];
SPListItemCollection spListItemCollection = splist.Items;
SPListItem item = spListItemCollection.Add();
item["OfficeID"] = txtTitle.Text;
item["OfficeName"] = txtTitle.Text;
item.Update();
}
}
catch (Exception ex)
{
}
}
}
}
v Exercise 07: Cách cập nhật list item vào SPList
Ø Tiếp tục với MoreObjectModelWebPart project
Ø Thêm mới Class UpdateSPListItemWebPart.cs
Ø Khai báo code trong phương thức CreateChildControls
§ Khai báo và khởi tạo Literal literalForTitle
· Gán “Title: ” cho thuộc tính Text của literalForTitle
· Thêm vào literalForTitle webpart
Literal literalForList = new Literal();
literalForList.Text = "Title: ";
this.Controls.Add(literalForList);
§ Khai báo và khởi tạo TextBox tên txtTitle
· Thêm txtTitle vào webpart
txtTitle = new TextBox();
this.Controls.Add(txtTitle);
txtName = new TextBox();
this.Controls.Add(txtName);
§ Khai báo và khởi tạo Button tên btnUpdate, text là Update
· Khai báo sự kiện Click của btnUpdate để cập nhật title của txtTitle vào MyCustomList mà có Id là 1 số của Title
· Thêm btnUpdate vào webpart
Button btnUpdate = new Button();
btnUpdate.Text = "Update";
btnUpdate.Click += new EventHandler(btnUpdate_Click);
this.Controls.Add(btnUpdate);
void btnUpdate_Click(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
UpdateListItem(spSite);
}
private void UpdateListItem(SPSite spSite)
{
using (SPWeb spWeb=spSite.OpenWeb())
{
SPList spList = spWeb.Lists["MyCustomList"];
SPListItemCollection spListItemCollection = spList.Items;
for (int i = 0; i < spListItemCollection.Count; i++)
{
SPListItem spListItem = spListItemCollection[i];
if (spListItem["OfficeID"].ToString()==txtTitle.Text)
{
spListItem["OfficeName"] = txtName.Text;
spListItem.Update();
}
}
}
}
Ø Thêm UpdateSPListItemWebPart.dwp
Ø Build project chế độ Release và Deploy WebPart
§ Copy UpdateSPListItemWebPart.dwp đến thư mục wpcatalog
Ø Quay lại sharepoint site
§ Thêm WebPart này đến WebPart page
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
using Microsoft.SharePoint.WebControls;
using System.Drawing;
namespace MoreObjectModelWebpart
{
public class UpdateSPListItemWebPart:WebPart
{
TextBox txtTitle;
TextBox txtName;
protected override void CreateChildControls()
{
Literal literalForList = new Literal();
literalForList.Text = "Title: ";
this.Controls.Add(literalForList);
txtTitle = new TextBox();
this.Controls.Add(txtTitle);
txtName = new TextBox();
this.Controls.Add(txtName);
Button btnUpdate = new Button();
btnUpdate.Text = "Update";
btnUpdate.Click += new EventHandler(btnUpdate_Click);
this.Controls.Add(btnUpdate);
}
void btnUpdate_Click(object sender, EventArgs e)
{
SPSite spSite = SPControl.GetContextSite(Context);
UpdateListItem(spSite);
}
private void UpdateListItem(SPSite spSite)
{
using (SPWeb spWeb=spSite.OpenWeb())
{
SPList spList = spWeb.Lists["MyCustomList"];
SPListItemCollection spListItemCollection = spList.Items;
for (int i = 0; i < spListItemCollection.Count; i++)
{
SPListItem spListItem = spListItemCollection[i];
if (spListItem["OfficeID"].ToString()==txtTitle.Text)
{
spListItem["OfficeName"] = txtName.Text;
spListItem.Update();
}
}
}
}
}
}
v Exercise 08: Cách xóa list item của SPList
v Exercise 09: Cách lấy 1 list item của SPList
0 comments:
Post a Comment