Pada artikel sebelumnya telah dijelaskan bagaimana
melakukan konversi dari string menjadi SPUser. Sehingga kita dapat memasukkan
data tersebut kedalam list dengan column yang bertipe “Person and Group”.
Sedangkan pada artikel ini akan dijelaskan, bagaimana mengambil user detail
pada colum “Person and Group”.
Sebagai ilustrasi, kita memiliki sebuah list dengan salah
satu column nya bertipe “Person and Group”. Dan selanjutnya dari data yang ada
tersebut akan diambil user detailnya, seperti Nama, Username dan Email. Untuk
contoh saya akan menampilkan data-data tersebut kedalam GridView.
Hal yang pertama yang dilakukan adalah dengan membuat
sebuah method untuk mengambil data pada sebuah list.
private IEnumerable TakeListData()
{
IEnumerable<SPListItem> myListItem = null;
using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists.TryGetList("User Detail");
if (list == null) return null ;
SPQuery query = new SPQuery();
query.Query = "";
SPListItemCollection rs = list.GetItems(query);
myListItem = rs.OfType<SPListItem>();
}
}
return myListItem;
}
Selanjutnya adalah membuat method, dimana proses konversi dari SPListItem menjadi SPUser.
private SPUser getUser(SPListItem item)
{
SPFieldUser field = item.Fields.GetFieldByInternalName("Approver") as SPFieldUser;
if (field != null)
{
SPFieldUserValue fieldValue = field.GetFieldValue(item["Approver"].ToString()) as SPFieldUserValue;
if (fieldValue != null)
return fieldValue.User;
}
return null;
}
"Approver" adalah column yang memilki tipe "Person and Group". Langkah terakhir adalah dengan membuat method untuk menampilkan detail user kedalam GridView.
private void BindData()
{
IEnumerable myListItem = TakeListData();
DataTable dtApprover = new DataTable();
dtApprover.Columns.Add("LoginName", typeof(string));
dtApprover.Columns.Add("Name", typeof(string));
dtApprover.Columns.Add("Email", typeof(string));
foreach (var item in myListItem)
{
SPUser user = getUser(item);
DataRow row = dtApprover.NewRow();
row["Name"] = user.Name;
row["LoginName"] = user.LoginName;
row["Email"] = user.Email;
dtApprover.Rows.Add(row);
}
ASPxGridView1.DataSource = dtApprover;
ASPxGridView1.DataBind();
}
Semoga bermanfaat..
Wassalam...
No comments:
Post a Comment