Devexpress GridControl Kullanarak Checkbox Kolon Ekleme İşlemleri
Geliştirdiğimiz uygulamalarda bazı durumlarda gelen listeden seçilenleri dışarı aktarma,başka bir veritabanına yazma, web sitesine upload etme yada seçilenleri silme gibi çoklu işlem yapma ihtiyacımız olabiliyor. Bu gibi durumlarda DevExpress’in GridControl nesnesini kullanarak görsel açıdan zengin arayüzler sunarak müşterimizi memnun edip talebini kolayca gerçekleştirebiliriz. (Windows Forms standart gelen DataGridView nesnesinde de aynı işlemleri yapabiliriz.) Benim görsellik ve birçok özelliği olmasından dolayı bu örnekte tercihim DevExpress GridControl oldu. Aşağıdaki örnekte ben veritabanımdan sipariş listesini çekiyorum ve çektiğim siparişlerin listesinden istediğimi seçip sipariş numarasını listbox nesnesine aktarıyorum. Müşterinin talebine göre seçtiği siparişleri onaylatıp, paketlenmesi için depoya yönlendirilebilirdi de.
Yeni bir Devexpress Windows Form projesi açıyorum ve projeme 3 adet button 1 adet gridconrol bir adet listbox ekleyip kodlamaya başlıyorum.
[csharp]
string dbyol = "Data Source=.;Initial Catalog=UzmanDB;User ID=sa;Password=1";
void SiparisleriListele()
{
SqlConnection con = new SqlConnection(dbyol);
if (con.State != ConnectionState.Open) con.Open();
SqlCommand cmd = new SqlCommand("select OrderDate,OrderNumber,CompanyCode,StoreCode,CreatedUserName from trOrderHeader order by OrderDate desc", con);
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Clear();
dt.Load(dr);
// Checkbox listesi gelmes için alt satırdaki kod yardımıyla bool türünde bir kolon eklemesi yapıyoruz.
dt.Columns.Add(new DataColumn("OK", Type.GetType("System.Boolean")));
gridControl.DataSource = dt;
}
private void frmMain_Load(object sender, EventArgs e)
{
SiparisleriListele();
}
private void btnHepsiniSec_Click(object sender, EventArgs e)
{
for (int i = 0; i < gridView1.RowCount; i++)
{
//Devexpress’te GridControl içerisinde gridview nesnesi olduğu için onun içerisinde döngü ile değerleri kontrol ediyoruz.
gridView1.SetRowCellValue(i, "OK", "True");
}
}
private void btnHicbiri_Click(object sender, EventArgs e)
{
for (int i = 0; i < gridView1.RowCount; i++)
{
//Devexpress’te GridControl içerisinde gridview nesnesi olduğu için onun içerisinde döngü ile değerleri kontrol ediyoruz.
gridView1.SetRowCellValue(i, "OK", "False");
}
}
private void btnSecilenleriAktar_Click(object sender, EventArgs e)
{
// Bu Aşamada ise gridview’deki değerleri bir değişkene atayarak kontrol ediyoruz. OK kolonundaki değer True ise listbox’umuza aktarım işlemini yapıyoruz.
string value = "";
for (int i = 0; i < gridView1.RowCount; i++)
{
value = gridView1.GetDataRow(i)["OK"].ToString();
if (value == "True")
{
lstSeciliListe.Items.Add(gridView1.GetRowCellValue(i, "OrderNumber").ToString());
}
}
}
[/csharp]
Güzel anlatmışsınız elinize sağlık
Rica ederim. Faydalı olmasına sevindim.
Bunu web tarafında nasıl yapabiliriz?Bana web tarafı lazım uyarlayamadım bir türlü webe bunu.
mesut bey çok başarılı..
Çok işime yaradı.Projede kullandım sağolasın.
Takıldığım bir nokta da imdadıma yetişti diye bilirim, çok teşekkür ederim, elinize sağlık =))
*Arşivimde yerini aldı.
Rica ederim. Faydalı olmasına sevindim.
Burda seçilenleri aktar derken listbox a değil de devexpress te başka bir gridview’e nasıl aktarırız ya da treelist’e ?
Merhaba İsmail,
Seçilen kayıtları bir Generic List’e veya DataTable’ye aktarıp daha sonra gridview’e oluşturduğun veri setini veri kaynağı olarak bağlayabilirsin.
1 örnek verebilir misin kod ile tam olarak çözemedim
Selam İsmail,
Linkte sorduğun soruya özel bir örnek hazırladım. Kolay gelsin.
https://yadi.sk/d/8ib2Joy0hVDhb
Süper olmuş kardeşim ellerine sağlık. Buradan birçok şey çıkartmama yardımcı oldu.
Yararlı olmasına sevindim.
merhaba, güzel bir örnek hazırlamışsınız. Benim sorum şu şekilde olacaktı. eğer sorgumuzu Linq ile sorguladımızı düşünürsek . checkbox olacak sütunu nasıl entegre edebiliriz ?
Yardımcı olursanız sevinirim.
İyi çalışmalar
listboxları nasıl ekleniyor
button nasıl eklenıyor aynı sekilde bi örnek sunabilir misiniz
Acil bişey sorabilirmiyim. peki checkbox olmadan MultiSelect özelliğiyle seçim yapıp çoklu olarak bu seçimleride hem veri tabanından hemde girdViewden silen kodları sorabilr miyim ? acil olarak . çok sağolun şimdiden ..