问题描述
问题描述:初始界面如下:M001是被勾上的。。。当我选择ComboBox里面的SysAdmin值时,并把A001和A002勾上并点保存按钮..界面如下:我再次点ComboBox里面的Master值时,M001被勾被去掉了。。这是保存按钮的代码:privatevoidbtnSave_Click(objectsender,EventArgse){userRule=newUserRule();userRule.DeleteARoleFunction(code);foreach(DataGridViewRowrowindgvwRole.Rows){if(row.Cells["选择"].Value!=null&&row.Cells["选择"].Value.ToString()=="True"){try{stringfunctionCode=row.Cells[1].Value.ToString();userRule.AddRoleFunction(functionCode,code);}catch(Exception){}}}MessageBox.Show("设置成功","提示");}
解决方案
解决方案二:
M001被勾被去掉了。。不知道要怎么改,M001才不被钩掉?
解决方案三:
我看你选择不同GridView的数据源也变了?那得看你ComboBox的SelectIndexChange的代码是怎么写的
解决方案四:
ComboBox改变时,数据库从新绑定!!!
解决方案五:
这个ComboBox的代码:privatevoidcboRole_SelectedIndexChanged(objectsender,EventArgse){//自动调整列的宽度dgvwRole.Columns[0].AutoSizeMode=System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;userRule=newUserRule();userRule.GetFunction(this.dgvwRole,this.cboRole,code);for(inti=0;i<this.dgvwRole.Rows.Count;i++){if(this.dgvwRole["Flag",i].Value.ToString()=="1"){this.dgvwRole["选择",i].Value=true;}}}
解决方案六:
这个应该在ComboBoxchanged事件里来做吧判断是哪个就把那个的选择框选中.比如时system的话就设置m001andm002不知道你的选择是什么依据来的是客户手动的呢,还是从数据库里来的如果是手动的就座变量记录要是从数据库来就简单多了
解决方案七:
从数据库里来的
解决方案八:
ComboBox改变时,数据库从新绑定!!!?绑定没有用啊,因为M001已经从数据库里删除了
解决方案九:
privatevoidbtnSave_Click(objectsender,EventArgse){userRule=newUserRule();userRule.DeleteARoleFunction(code);//点击保存的时候,根据用户名吧数据全部删除foreach(DataGridViewRowrowindgvwRole.Rows){if(row.Cells["选择"].Value!=null&&row.Cells["选择"].Value.ToString()=="True"){try{stringfunctionCode=row.Cells[1].Value.ToString();userRule.AddRoleFunction(functionCode,code);//然后再重新添加}catch(Exception){}}}MessageBox.Show("设置成功","提示");}
解决方案十:
你跟踪调试下吧看看保存的时候有问题还是绑定数据源的时候有问题保存的时候看看你勾上的Row是否保存到数据库中,你的Flag是否正确绑定的时候看看if(this.dgvwRole["Flag",i].Value.ToString()=="1")这句是否符合条件
解决方案十一:
符合条件啊,应该是保存的时候出的问题吧
解决方案十二:
唉,搞了一天了,就剩下这个BUG搞不定。。不知道什么问题
解决方案十三:
数据重新绑定的时候CheckBox肯定重置。你在数据库里写一个字段记录下CheckBox的属性,这样做会好点。要不的话你每次更改ComboBox时都会重新绑定数据。