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...
Update Contact :
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email : Fajarudinsidik@gmail.com
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email: Fajarudinsidik@gmail.com
atau Kirimkan Private messanger melalui email dengan klik tombol order dibawah ini :