GridView篩選夠的勾選
DataTable dt = this.gridctl_bjjh_right.DataSource as DataTable;//這是整個資料來源 int handle = this.view_bjjh_right.FocusedRowHandle;//這裡是篩選過的dv,可能只有一條 //篩選後勾選第一條,handle=0,但是dt中的第一行還是原始總的資料條數,以上 dv的handle與dt的行數是不一致的 DataRow drView = this.view_bjjh_right.GetDataRow(handle); string strCLINICID = drView["CLINICID"] == null ? "" : drView["CLINICID"].ToString().Trim(); string strTESTCODE = drView["TESTCODE"] == null ? "" : drView["TESTCODE"].ToString().Trim();
DataRow[] drs = dt.Select(string.Format("CLINICID='{0}' and TESTCODE='{1}'", strCLINICID, strTESTCODE)); if (drs.Length > 0) { foreach (DataRow dr in drs) { if (dr["Sel"].ToString() == "" || dr["Sel"].ToString() == "0") { dr["SEL"] = "1"; } else { dr["SEL"] = ""; } } }
private void repositoryItemCheckEdit8_CheckStateChanged(object sender, EventArgs e) { DataTable dt = this.gridctl_bjjh_right.DataSource as DataTable;//這是整個資料來源 int handle = this.view_bjjh_right.FocusedRowHandle;//這裡是篩選過的dv,可能只有一條 //以上 dv的handle與dt的行數是不一致的 DataRow drView = this.view_bjjh_right.GetDataRow(handle); string strCLINICID = drView["CLINICID"] == null ? "" : drView["CLINICID"].ToString().Trim(); string strTESTCODE = drView["TESTCODE"] == null ? "" : drView["TESTCODE"].ToString().Trim(); DataRow[] drs = dt.Select(string.Format("CLINICID='{0}' and TESTCODE='{1}'", strCLINICID, strTESTCODE)); if (drs.Length > 0) { foreach (DataRow dr in drs) { if (dr["Sel"].ToString() == "" || dr["Sel"].ToString() == "0") { dr["SEL"] = "1"; } else { dr["SEL"] = ""; } } } int iItemNum = 0; List<string> ls = new List<string>(); foreach (DataRow dr1 in dt.Rows) { if (dr1["SEL"].ToString() == "1") { iItemNum += 1; string sglcheckid = dr1["CLINICID"].ToString(); if (ls.Contains(sglcheckid)) { } else { ls.Add(sglcheckid); } } } this.labelControl已選數量.Text = iItemNum == 0 ? "計數" : string.Format("已選{0}位客戶,{1}條結果記錄", ls.Count, iItemNum); }