[WinForm]控件问题。。
问题描述:初始界面如下:
M001是被勾上的。。。
当我选择ComboBox里面的SysAdmin值时,并把A001和A002勾上并点保存按钮..界面如下:
我再次点ComboBox里面的Master值时,M001被勾被去掉了。。
这是保存按钮的代码:
--------------------编程问答-------------------- M001被勾被去掉了。。不知道要怎么改,M001才不被钩掉? --------------------编程问答--------------------
private void btnSave_Click(object sender, EventArgs e)
{
userRule = new UserRule();
userRule.DeleteARoleFunction(code);
foreach (DataGridViewRow row in dgvwRole.Rows)
{
if (row.Cells["选择"].Value != null && row.Cells["选择"].Value.ToString() == "True")
{
try
{
string functionCode = row.Cells[1].Value.ToString();
userRule.AddRoleFunction(functionCode, code);
}
catch (Exception)
{
}
}
}
MessageBox.Show("设置成功", "提示");
}
我看你选择不同GridView的数据源也变了?
那得看你ComboBox的SelectIndexChange的代码是怎么写的 --------------------编程问答-------------------- ComboBox改变时,数据库从新绑定!!! --------------------编程问答-------------------- 这个ComboBox的代码:
--------------------编程问答-------------------- 这个应该在
private void cboRole_SelectedIndexChanged(object sender, EventArgs e)
{
//自动调整列的宽度
dgvwRole.Columns[0].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
userRule = new UserRule();
userRule.GetFunction(this.dgvwRole, this.cboRole, code);
for (int i = 0; i < this.dgvwRole.Rows.Count; i++)
{
if (this.dgvwRole["Flag", i].Value.ToString() == "1")
{
this.dgvwRole["选择", i].Value = true;
}
}
}
ComboBoxchanged事件里来做吧
判断是哪个就把那个的选择框选中.
比如时system
的话就设置m001 and m002
不知道你的选择是什么依据来的
是客户手动的呢,还是从数据库里来的
如果是手动的就座变量记录
要是从数据库来就简单多了 --------------------编程问答-------------------- 从数据库里来的 --------------------编程问答-------------------- ComboBox改变时,数据库从新绑定!!!?
绑定没有用啊,因为M001已经从数据库里删除了 --------------------编程问答--------------------
--------------------编程问答-------------------- 你跟踪调试下吧
private void btnSave_Click(object sender, EventArgs e)
{
userRule = new UserRule();
userRule.DeleteARoleFunction(code);//点击保存的时候,根据用户名吧数据全部删除
foreach (DataGridViewRow row in dgvwRole.Rows)
{
if (row.Cells["选择"].Value != null && row.Cells["选择"].Value.ToString() == "True")
{
try
{
string functionCode = 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时都会重新绑定数据。
补充:.NET技术 , C#