问一个关于DataGrid中CheckBox的问题(WINFORM)

朝夕闻道 2004-08-09 12:02:53
代码片断:dsMem是一个从数据库取出的数据DataSet,refWeb.execSql(strSql)为通过WebService执行Sql语句
private void memberValidate_Load(object sender, System.EventArgs e)
{
dsMem = refWeb.getData("SELECT m_id,m_account,m_email,m_checked FROM db_member WHERE m_checked = 0 and m_delflag = 0");
dsMem.Tables[0].Columns.Add(new DataColumn("sel",typeof(bool)));
dsMem.Tables[0].Columns["sel"].DefaultValue = 0 ;
CreatStyles(this.dataGrid1);
this.dataGrid1.DataSource = dsMem.Tables[0];
}

private void CreatStyles(DataGrid dg)
{
DataGridTableStyle style = new DataGridTableStyle();
style.MappingName = "trydata";
style.AlternatingBackColor = System.Drawing.Color.Bisque;

DataGridTextBoxColumn account = new DataGridTextBoxColumn();
account.HeaderText = "帐号";
account.MappingName = "m_account";
account.ReadOnly = true;
account.Width = 200;

DataGridBoolColumn sel =new DataGridBoolColumn();
sel.AllowNull=false;
sel.MappingName = "sel";
sel.HeaderText ="选择";
sel.Width =15;
sel.ReadOnly=false;
sel.TrueValue=true;
sel.AllowNull = false;
sel.FalseValue=Convert.DBNull;
sel.NullValue=Convert.DBNull;

style.GridColumnStyles.AddRange(new DataGridColumnStyle[]{sel,account});
dg.TableStyles.Clear();
dg.TableStyles.Add(style);
}

private void button1_Click(object sender, System.EventArgs e)
{
for(int i=0;i < dsMem.Tables[0].Rows.Count ; i++)
{
if(dsMem.Tables[0].Rows[i]["sel"].ToString() == "True")
{
string strSql = " update db_member set m_checked = 1, where m_id = " + dsMem.Tables[0].Rows[i]["m_id"];
refWeb.execSql(strSql);
MessageBox.Show("验证成功");
}
}
}

我想问的是
一 为什么这个CheckBox有三种状态,如何让它只有两种
二 在更新后,如何隐藏更改过的行,就是让DataGrid不再显示dsMem中已经在数据库中更新过的信息
...全文
871 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
y1900808y 2004-08-10
  • 打赏
  • 举报
回复
是有三种状态,true,false,和System.DBNull(实际处理时是认为checked=false),你可以做个判断,当为System.DBNull时,将checkbox的状态强行设置为false
sundyhuang 2004-08-10
  • 打赏
  • 举报
回复
你试一下,我试过成功了

this.dataSet11.Tables["checkbox"].Columns["pruview"].DefaultValue=0;
this.dataSet11.Tables["checkbox"].Columns["pruview"].AllowDBNull=false;

朝夕闻道 2004-08-10
  • 打赏
  • 举报
回复
那要怎么控制呀,郁闷~~~~~~~~~~
jwjkr74 2004-08-09
  • 打赏
  • 举报
回复
componnetOneStudio for .net 里的DBGRid就只有两种状态,并且这个控件非常强大!
xiangding 2004-08-09
  • 打赏
  • 举报
回复
自已控制就可以了,
一般的checkbox都有三种状态的,
sy246 2004-08-09
  • 打赏
  • 举报
回复
第二个问题好像不行呀!
朝夕闻道 2004-08-09
  • 打赏
  • 举报
回复
再顶,吃饭去
朝夕闻道 2004-08-09
  • 打赏
  • 举报
回复
好的,你要是解决了也不要忘记给我短消息了
朝夕闻道 2004-08-09
  • 打赏
  • 举报
回复
唉,~~~怎么没人回答呢,自己顶~~
sundyhuang 2004-08-09
  • 打赏
  • 举报
回复
兄弟你好,我也有你这样的问题,如知道后请告知
还有就是为什么不能设置checkbox的默认值

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧