🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# DEVEXPRESS RMOS / gridControl yeni satır ekleme

1-) C# DEVEXPRESS RMOS - gridControl yeni satır ekleme

 

1-) yeni satır ekleme : dikkat en az bir datasource basılması lazımdır

 

 public void DuplicateRow(GridControl gridControl)

 {

     // Grid'in veri kaynağını al

     var gridView = gridControl.MainView as GridView;

     if (gridView == null) return;

 

     // Grid'in veri kaynağını kontrol et

     var dataSource = gridControl.DataSource as IList;

     if (dataSource == null) return;

 

     // Yeni boş bir satır oluştur ve veri kaynağına ekle

     var itemType = dataSource.GetType().GetGenericArguments().FirstOrDefault();

     if (itemType != null)

     {

         var newRow = Activator.CreateInstance(itemType);

         dataSource.Add(newRow);

 

         // GridView'e yeni satırı odakla

         gridView.RefreshData();

         gridView.FocusedRowHandle = gridView.GetRowHandle(dataSource.Count - 1);

     }

 }

 

 

 

2- )

açıklama : eğer en az 1 row varsa onun kopyasını yeni satır ekler. yoksa boş yeni ekler. dikkat en az bir datasource basılması lazımdır

 

 

public void DuplicateRow(GridControl gridControl)

{

    // Grid'in veri kaynağını al

    var gridView = gridControl.MainView as GridView;

    if (gridView == null) return;

 

    // Grid'in veri kaynağını kontrol et

    var dataSource = gridControl.DataSource as IList;

    if (dataSource == null) return;

 

    // Eğer satır sayısı 0'dan büyükse

    if (gridView.RowCount > 0)

    {

        // Son satırı al

        var lastRowHandle = gridView.GetRowHandle(gridView.RowCount - 1);

        var lastRow = gridView.GetRow(lastRowHandle);

 

        // Son satırın kopyasını oluştur

        var newRow = Activator.CreateInstance(lastRow.GetType());

        foreach (var property in lastRow.GetType().GetProperties())

        {

            if (property.CanWrite)

            {

                property.SetValue(newRow, property.GetValue(lastRow));

            }

        }

 

        // Kopyayı veri kaynağına ekle

        dataSource.Add(newRow);

 

        // GridView'e yeni satırı odakla

        gridView.RefreshData();

        gridView.FocusedRowHandle = gridView.GetRowHandle(dataSource.Count - 1);

    }

    else

    {

        // Veri kaynağında hiç satır yoksa, yeni boş bir satır oluştur ve ekle

        var itemType = dataSource.GetType().GetGenericArguments().FirstOrDefault();

        if (itemType != null)

        {

            var newRow = Activator.CreateInstance(itemType);

            dataSource.Add(newRow);

 

            // GridView'e yeni satırı odakla

            gridView.RefreshData();

            gridView.FocusedRowHandle = gridView.GetRowHandle(dataSource.Count - 1);

        }

    }

}

 

 

 2024 Aralık 29 Pazar
 187