Thứ Năm, 24 tháng 10, 2013

Dev: gridView1.SelectedRowsCount

tìm các row chọn selected

List<int> selected = new List<int>();
        private void chkSelect_CheckedChanged(object sender, EventArgs e)
        {
            CheckEdit chk = sender as CheckEdit;
            insupd(chk.Checked, Convert.ToInt32(gvNhanVien.GetRowCellValue(gvNhanVien.FocusedRowHandle, "Hrm_EmployeeID") + ""));
        }

        private void insupd(bool _flag, int _code)
        {
            if (_flag)
            {
                if (!selected.Contains(_code))
                    selected.Add(_code);
            }
            else
            {
                if (selected.Contains(_code))
                    selected.Remove(_code);
            }
        }


-------------------------------------- --------------------------------------
--------------------------------------  --------------------------------------
The following sample code can be used to get the value of the ID column within the third data row (this row's handle is equal to 2).
C#

VB

string cellValue;
cellValue = gridView1.GetRowCellValue(2, "ID").ToString();
 
 
// Create an empty list.
ArrayList rows = new ArrayList();
// Add the selected rows to the list.
for (int i = 0; i < gridView1.SelectedRowsCount; i++) {
   if (gridView1.GetSelectedRows()[i] >= 0)
      rows.Add(gridView1.GetDataRow(gridView1.GetSelectedRows()[i]));
}
try {
   gridView1.BeginUpdate();
   for (int i = 0; i < rows.Count; i++) {
      DataRow row = rows[i] as DataRow;
      // Change the field value.
      row["Discontinued"] = true;                             
   }
}
finally {
   gridView1.EndUpdate();
}    

 

How to get the GridView selected objects


0
To get all selected objects in the GridView, you should iterate via all selected rows, get row handles, and then by using the GetSelectedRows method get the selected row object itself.
See Also:
Selections Overview
Open in popup window
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
            list = new BindingList<MyObject>();

            for(int i = 0; i < 10; i++) {
                list.Add(new MyObject(i.ToString(),(i+10).ToString()));
            }
            bs = new BindingSource();
            bs.DataSource = list;

            gridControl1.DataSource = bs;

        }


        BindingSource bs;
        BindingList<MyObject> list;

        private void simpleButton1_Click(object sender, EventArgs e) {
            listBoxControl1.Items.Clear();
            for(int i = 0; i < gridView1.SelectedRowsCount; i++) {
                int row = (gridView1.GetSelectedRows()[i]);
                MyObject obj = gridView1.GetRow(row) as MyObject;
                if(obj == null) return;
                listBoxControl1.Items.Add(obj.Field2.ToString());
            }
        }

    }
    public class MyObject: INotifyPropertyChanged {
        public MyObject(string str1,string str2) {
            field1 = str1;
            field2 = str2;
        }
        private string field1;
        public string Field1 {
            get { return field1; }
            set {
                field1 = value;
                NotifyPropertyChanged("Field1");
            }
        }

        private string field2;
        public string Field2 {
            get { return field2; }
            set {
                field2 = value;
                NotifyPropertyChanged("Field2");
            }
        }


        #region INotifyPropertyChanged Members

        private void NotifyPropertyChanged(String info) {
            if (PropertyChanged != null) {
                PropertyChanged(this, new PropertyChangedEventArgs(info));
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        #endregion
    }
}

Không có nhận xét nào:

Đăng nhận xét