1 //进行归档 2 private void btFile_Click(object sender, EventArgs e) 3 { 4 //获得已选择的项 5 this.getSelected(); 6 7 // int kk = this.htSelected.Count;//选中的行数 8 if (this.htSelected.Count == 0) 9 { 10 MessageBox.Show("请先选择需要归档的资产卡片!"); 11 return; 12 } 13 int n = 0; 14 for (int a = 0; a < this.htSelected.Count; a++) 15 { 16 //MessageBox.Show(this.dgvResult.Rows[kk].Cells[16].Value.ToString()); 17 if (this.dgvResult.Rows[a].Cells[16].Value.ToString() == "归档") 18 { 19 MessageBox.Show("该资产卡片已归档,请重新选择!"); 20 n++; 21 } 22 else 23 { 24 DialogResult dr = MessageBox.Show("是否进行归档?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question); 25 26 if (dr == DialogResult.Yes) 27 { 28 //获得归档资产卡片 29 ArrayList list = new ArrayList(htSelected.Values); 30 int count = list.Count; 31 32 string[] sendHeadBuf = basic.productSendPackage("0", "22820", "0", " ", 农信资产管理.Login._loginId); //查询用户 33 string[] recordData = new string[count + 1]; 34 35 for (int i = 1; i <= count; i++) 36 { 37 string data = (string)list[i - 1]; 38 string[] ret = data.Split('|'); 39 string cardId = ret[1];//卡片编号 40 recordData[i] = "|" + cardId + "|"; 41 } 42 43 //执行归档操作 44 ArrayList al_result = null; 45 al_result = this.extTran(sendHeadBuf, recordData); 46 47 if (al_result != null) 48 { 49 MessageBox.Show("归档成功!"); 50 //清除已选 51 this.htSelected = new Hashtable(); 52 } 53 } 54 } 55 } 56 }
我在选择卡片时,里面归档含有归档与未归档的卡片,怎样能去除重复的弹出“该资产卡片已归档,请重新选择!”
望各位大侠能指教一二啊
两个循环顺序倒过来判断,先查有没有没有归档的
具体怎么实现
给个代码
就是在for循环里面把你的代码倒过来一下就好啦。最后当n==this.htSelected.Count-1且未进行过归档时 MessageBox.Show("该资产卡片已归档,请重新选择!");
看你的代码,应该不会重复提示吧?遍历行,遇到已归档的也只会提示一次吧?
是不是每次提交都只提示一次?
是的话 17行加上n==0
晕死,不知道别乱回答,this.dgvResult.Rows[a].Cells[16].Value.ToString(),他是个字符串类型,不是整形,OK????
@じ★ve寂寞:
哥哥 请看自己的代码13行......
我的意思是 n==0&&this.dgvResult.Rows[a].Cells[16].Value.ToString() == "归档"