RadGrid işlemlerinde yaptımız grid üzerine context menu ekleyelim.
Bunu için projemizin kod kısmıa context menuleri tanımlayalım,
private RadContextMenu AktifcontextMenu;
private RadContextMenu PasifcontextMenu;
Tıklanan satırdaki belli bir alana göre menulerin olusması için ıkı farkli context menu oluşturduk, Menuler değişkenlik göstermiyorsa tek bir tane olusturmamız yeterliydi
public void GridMenuOlustur()
{
AktifcontextMenu = new RadContextMenu();
RadMenuItem Pasif = new RadMenuItem("Pasif");
Pasif.Click += new EventHandler(Pasif_Click);
AktifcontextMenu.Items.Add(Pasif);
RadMenuItem Sil = new RadMenuItem("Sil");
Sil.Click += new EventHandler(Sil_Click);
AktifcontextMenu.Items.Add(Sil);
PasifcontextMenu = new RadContextMenu();
RadMenuItem Aktif = new RadMenuItem("Aktif");
Aktif.Click += new EventHandler(Aktif_Click);
PasifcontextMenu.Items.Add(Aktif);
RadMenuItem ASil = new RadMenuItem("Sil");
ASil.Click += new EventHandler(Sil_Click);
PasifcontextMenu.Items.Add(ASil);
}
private void Aktif_Click(object sender, EventArgs e)
{
}
private void Sil_Click(object sender, EventArgs e)
{
}
private void Pasif_Click(object sender, EventArgs e)
{
}
Aktif ogrenci satırı secildiğinde context menude pasif ve sil, pasif olan ogrenci secildiğinde aktif ve sil menuleri gorunecek, aktif menuye tıklandiğinda pasif olan ögrenci aktif olacak, aktif menuye tıklandiğinda pasif olan ogrenci aktif olacak. ilk oncelkle datagride bu context menuyu haber vermemiz lazim gridin properties ozalliklerinden AllowCellContextMenu özelliğiniz true yapalım ve event bölümünden ContextmenuOpening'e çift tıklayalım. olusan eventin içine;
if((bool)radGridView1.Rows[radGridView1.CurrentRow.Index].Cells["isAktif"].Value == true)
{e.ContextMenu = AktifcontextMenu.DropDown; }
elseif((bool)radGridView1.Rows[radGridView1.CurrentRow.Index].Cells["isAktif"].Value == false)
{e.ContextMenu =PasifcontextMenu.DropDown;}
Buradaki radGridView1.CurrentRow.Index grid üzerinde tıklanan satırın indexini verir.
Formun load olayına GridMenuOlustur() ekleyip programı çalıştıralım
Gelelim aktifi pasif pasifi aktif yapmaya,yada secileni silmeye..
private void Aktif_Click(object sender, EventArgs e)
{
foreach (var item in list)
{
if(item.OgrId==(int)radGridView1.Rows[radGridView1.CurrentRow.Index].Cells["OgrId"].Value)
{
item.isAktif = true;
}
}
radGridView1.DataSource= new List<denemeSurregate>();
radGridView1.DataSource = list;
}
private void Pasif_Click(object sender, EventArgs e)
{
foreach (var item in list)
{
if (item.OgrId == (int)radGridView1.Rows[radGridView1.CurrentRow.Index].Cells["OgrId"].Value)
{
item.isAktif = false;
}
}
radGridView1.DataSource = new List<denemeSurregate>();
radGridView1.DataSource = list;
}
private void Sil_Click(object sender, EventArgs e)
{
foreach (var item in list)
{
if (item.OgrId == (int)radGridView1.Rows[radGridView1.CurrentRow.Index].Cells["OgrId"].Value)
{
list.Remove(item);
}
}
radGridView1.DataSource = new List<denemeSurregate>();
radGridView1.DataSource = list;
}