Treeview with data Grid and context menu
output
start Program
.cs
using Microsoft.SharePoint;
using Microsoft.SharePoint.Client;
using System.Text.RegularExpressions;
namespace SilverligtUsertree_RK
{
public partial class MainPage : UserControl
{
ClientContext site;
List listobj;
ListItemCollection listcoll;
double a, b;
string userid = "";
string loginuserid;
public MainPage()
{
try
{
InitializeComponent();
site = new ClientContext("sitename");
site.Load(site.Web);
listobj = site.Web.Lists.GetByTitle("User Details_RK");
site.Load(listobj);
CamlQuery cam = new CamlQuery();
cam.ViewXml = "<View/>";
listcoll = listobj.GetItems(cam);
site.Load(listcoll);
site.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(sucess), null);
ContextMenu contex = new ContextMenu();
contex.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
contex.VerticalAlignment = System.Windows.VerticalAlignment.Top;
MenuItem Edit = new MenuItem();
Edit.Header = "Edit";
contex.Items.Add(Edit);
MenuItem delete = new MenuItem();
delete.Header = "Delete";
contex.Items.Add(delete);
MenuItem exit = new MenuItem();
exit.Header = "Exit";
contex.Items.Add(exit);
Edit.Click += new RoutedEventHandler(Edit_Click);
delete.Click += new RoutedEventHandler(delete_Click);
exit.Click += new RoutedEventHandler(exit_Click);
grid1.Children.Add(contex);
grid1.Visibility = System.Windows.Visibility.Collapsed;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + "error in mainpage");
}
}
void exit_Click(object sender, RoutedEventArgs e)
{
grid1.Visibility = Visibility.Collapsed;
// this.Content = new MainPage();
}
public void sucess(object sender, ClientRequestSucceededEventArgs args)
{
Dispatcher.BeginInvoke(treeview);
}
public void treeview()
{
try
{
// didnot look for existing item because userid is unique in list
TreeViewItem tvitem = new TreeViewItem();//treeview the list
tvitem.Header = "UserID";
treeView1.Items.Add(tvitem);
foreach (var item in listcoll)
{
TreeViewItem tvi = new TreeViewItem();
string useridlist = Convert.ToString(item["UserID"]);
tvi.Header = useridlist;
tvitem.Items.Add(tvi);
tvi.MouseRightButtonDown += new MouseButtonEventHandler(tvi_MouseRightButtonDown);
tvi.MouseLeftButtonUp += new MouseButtonEventHandler(tvi_MouseLeftButtonUp);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + "treeview");
}
}
void tvi_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
try
{
TreeViewItem treevie = sender as TreeViewItem;
loginuserid = treevie.Header.ToString();
List<_oneuserclass> userdatagrid = new List<_oneuserclass>();//creating list our own(see below)
foreach (ListItem item in listcoll)
{
//MessageBox.Show(loginuserid + "==" + Convert.ToString(item["UserID"]));
if (loginuserid == Convert.ToString(item["UserID"]))
{
String result = Regex.Replace(Convert.ToString(item["Address"]), @"<[^>]*>", String.Empty);//removing the all html tags..........
userdatagrid.Add(new _oneuserclass
{
FirstName = Convert.ToString(item["First_x0020_Name"]),
LastName = Convert.ToString(item["Last_x0020_Name"]),
UserID = Convert.ToString(item["UserID"]),
Qualification = Convert.ToString(item["Qualification"]),
Address = result,
DateofBirth = Convert.ToDateTime(item["DateOfBirth"]).ToString("dd/MM/yyyy"),
ID = Convert.ToInt16(item["ID"]),
Password = Convert.ToString(item["PassWord"])
});
}
dataGrid1.ItemsSource = userdatagrid;
}
}
catch (Exception ex)
{
//MessageBox.Show("error in edit" + ex.Message);
}
}
void tvi_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
TreeViewItem treevie = sender as TreeViewItem;
userid = treevie.Header.ToString();
// MessageBox.Show(userid);
e.Handled = true;
a = e.GetPosition(treeView1).X;
b = e.GetPosition(treeView1).Y;
grid1.Margin = new Thickness(a, b, 0, 0);
grid1.Visibility = System.Windows.Visibility.Visible;
}
private void Edit_Click(object sender, RoutedEventArgs e)
{
try
{
grid1.Visibility = System.Windows.Visibility.Collapsed;
EditingChildWindow1 editchild = new EditingChildWindow1(userid);//name of child window
editchild.txtuserid.Text = userid;
editchild.txtuserid.IsEnabled = true;//to keep values as default
editchild.Show();
}
catch (Exception ex)
{
}
}
private void delete_Click(object sender, RoutedEventArgs e)
{
grid1.Visibility = System.Windows.Visibility.Collapsed;
MessageBoxResult result = MessageBox.Show("Are You sure want to delete the item?" + userid, "Delete item", MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK)
{
foreach (ListItem item in listcoll)
{
string deleteuseritem = Convert.ToString(item["UserID"]);
if (deleteuseritem == userid)
{
int id = Convert.ToInt16(item["ID"]);
ListItem litem = listobj.GetItemById(id);
litem.DeleteObject();
site.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(succed), null);
MessageBox.Show("Hee..! hee..! hee..! your unwanted item is deleted...!");
this.Content = new MainPage();
}
}
}
}
public void succed(object sender, ClientRequestSucceededEventArgs arg)
{
}
public class _oneuserclass
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Password { get; set; }
public string UserID { get; set; }
public string Qualification { get; set; }
public string Address { get; set; }
public string DateofBirth { get; set; }
public int ID { get; set; }
}
}
}
Editing
.cs
using Microsoft.SharePoint;
using Microsoft.SharePoint.Client;
using System.Text.RegularExpressions;
namespace SilverligtUsertree_RK
{
public partial class EditingChildWindow1 : ChildWindow
{
ClientContext site;
List listobj;
ListItemCollection listcoll;
string _userid;
int ID = 0;
public EditingChildWindow1(string userid)
{
InitializeComponent();
_userid = userid;
site = new ClientContext("sitename");
site.Load(site.Web);
listobj = site.Web.Lists.GetByTitle("User Details_RK");
site.Load(listobj);
CamlQuery cam = new CamlQuery();
cam.ViewXml = "<View/>";
listcoll = listobj.GetItems(cam);
site.Load(listcoll);
site.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(sucess), null);
//this.DialogResult = true;
}
private void sucess(object sender, ClientRequestSucceededEventArgs arg)
{
Dispatcher.BeginInvoke(editchid);
}
private void editchid()
{
ComboBoxItem combo = combo_qualifi.SelectedItem as ComboBoxItem;
foreach (ListItem item in listcoll)
{
String result2 = Regex.Replace(Convert.ToString(item["Address"]), @"<[^>]*>", String.Empty);
try
{
string useridcheck = Convert.ToString(item["UserID"]);
string fname = Convert.ToString(item["First_x0020_Name"]);
string lname = Convert.ToString(item["Last_x0020_Name"]);
string pwd = Convert.ToString(item["PassWord"]);
DateTime dt = Convert.ToDateTime(item["DateOfBirth"]);
string qualif = Convert.ToString(item["Qualification"]);
string address = result2;
if (useridcheck == _userid)
{
txtfirsrname.Text = fname;
txtlastname.Text = lname;
txtpassowrd.Text = pwd;
txtdateofbirth.Text =Convert.ToString(dt);
txtaddress.Text = address;
combo_qualifi.Items.Insert(0, qualif); combo_qualifi.SelectedIndex = 0;
}
}
catch { }
}
}
private void OKButton_Click(object sender, RoutedEventArgs e)
{
//just inserting into the list
ComboBoxItem combo = combo_qualifi.SelectedItem as ComboBoxItem;//we cannto add combox items directly so we use ComboBoxItem
foreach (var item in listcoll)
{
try
{
string useridcheck = Convert.ToString(item["UserID"]);
if (useridcheck == _userid)
{
int id = Convert.ToInt32(item["ID"]);
ID = id;
break;
}
}
catch (Exception ex)
{
MessageBox.Show("insert properly" + ex.Message);
}
}
ListItem items = listobj.GetItemById(ID);
items["First_x0020_Name"] = txtfirsrname.Text;
items["Last_x0020_Name"] = txtlastname.Text;
items["UserID"] = txtuserid.Text;
items["PassWord"] = txtpassowrd.Text;
items["DateOfBirth"] = Convert.ToDateTime(txtdateofbirth.Text);
items["Qualification"] = Convert.ToString(combo.Content);
items["Address"] = txtaddress.Text;
items.Update();
site.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(sucessced), null);
this.DialogResult = true;
}
public void sucessced(object sender, ClientRequestSucceededEventArgs arg)
{
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
}
//private void button1_Click(object sender, RoutedEventArgs e)
//{
// txtfirsrname.Text = string.Empty;
// txtlastname.Text = string.Empty;
// txtpassowrd.Password = string.Empty;
// txtdateofbirth.Text = string.Empty;
// txtqualification.SelectedItem = string.Empty;
// txtaddress.Text = string.Empty;
//}
public void succed(object sender, ClientRequestSucceededEventArgs arg)
{
}
}
}