请问,,怎么样使DataGrid中的CheckBox控件只有两种状态(选取和未选取,不要变灰的那种状态)寻求帮助

lanlanq 2005-03-03 10:12:48
我的datagrid加上checkBox后就是灰色的样式,并且是选中的,怎么去掉选中,并且不是灰色的,还有如何得到选中的文件,我要删除。如何判断选中的文件。
...全文
274 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
baobei7758 2005-03-07
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
ds.Tables[0].Columns.Add("isSelected")


//
// dataGridBoolColumn1
//
this.dataGridBoolColumn1.AllowNull = false;
this.dataGridBoolColumn1.FalseValue = ((object)(resources.GetObject("dataGridBoolColumn1.FalseValue")));
this.dataGridBoolColumn1.MappingName = "isSelected";
this.dataGridBoolColumn1.NullValue = ((object)(resources.GetObject("dataGridBoolColumn1.NullValue")));
this.dataGridBoolColumn1.TrueValue = "1";
this.dataGridBoolColumn1.Width = 35;
lanlanq 2005-03-05
  • 打赏
  • 举报
回复
以上解决方式我都试了,没有可以的,是不是我的写法错误,在帮助一下吧
lanlanq 2005-03-04
  • 打赏
  • 举报
回复
还是不行,真是郁闷
lanlanq 2005-03-04
  • 打赏
  • 举报
回复
是winform的datagrid控件。
lanlanq 2005-03-04
  • 打赏
  • 举报
回复
在顶一下
jionghan3855 2005-03-04
  • 打赏
  • 举报
回复
加上一个模板列,checkbox的id="bbb",ArrayList al = new ArrayList();
//选中某个复选框
for(int i=0;i<this.DeptPopedomTirdPartyListDataGrid.Items.Count;i++)
{
CheckBox cb =(CheckBox)this.DeptPopedomTirdPartyListDataGrid.Items[i].FindControl("bbb");
if(cb.Checked)
{
DataGridItem DataGridItem =this.DeptPopedomTirdPartyListDataGrid.Items[i];
if(!al.Contains(DataGridItem.Cells[15].Text))
{
al.Add(DataGridItem.Cells[15].Text);//将选中的checkbox对应的15列的值放入al中,进行记录
}
}

}

al放的是你删除的关键字(主键),然后取出,进行删除就可以了
amendajing 2005-03-04
  • 打赏
  • 举报
回复
mark
lanlanq 2005-03-04
  • 打赏
  • 举报
回复
winform的,怎么得到,鄙人太笨了,需要明解
3tzjq 2005-03-04
  • 打赏
  • 举报
回复
你可以建立一个 BindingManagerBase bm;并绑定到数据表,然后就可以可以得到选择的数据行ds.table([TableName]).Rows(bm.Position)
zhouweiwansui 2005-03-04
  • 打赏
  • 举报
回复
winform的阿
jcchou 2005-03-04
  • 打赏
  • 举报
回复
可以这样,页面下载时,先用一数组保存从数据库读出的checked项的值。
在dataGrid的itemDataBind方法中循环对第个checkBox赋值(根据前面数组的值)
lanlanq 2005-03-04
  • 打赏
  • 举报
回复
我是通过代码生成的列

OleDbConnection con = Tools.getAccessConnection();
DataSet ds = Tools.getAccessDataSet("Select * from Tbl_Bank",con);
ds.Tables[0].Columns["ID"].AllowDBNull = false;
//dataGridBank.DataSource =ds.Tables[0];
dataGridBank.SetDataBinding(ds,ds.Tables[0].TableName);
//dataGridBank.DataMember = ds.Tables[0].TableName;
DataGridTableStyle myTableStyle = new DataGridTableStyle();
myTableStyle.MappingName = ds.Tables[0].TableName;


DataGridTextBoxColumn Colunm1 = new DataGridTextBoxColumn();
Colunm1.MappingName = ds.Tables[0].Columns["key"].ColumnName;
Colunm1.HeaderText="标号";
Colunm1.Width=100;
Colunm1.NullText = "无";
Colunm1.ReadOnly = true;

DataGridTextBoxColumn Colunm2 = new DataGridTextBoxColumn();
Colunm2.MappingName = ds.Tables[0].Columns["name"].ColumnName;
Colunm2.HeaderText="银行名称";
Colunm2.Width=200;
Colunm2.NullText = "无";
Colunm2.ReadOnly = true;

DataGridBoolColumn myGridColumn = new DataGridBoolColumn();
this.SetAllowNull(myGridColumn);
myGridColumn.MappingName = ds.Tables[0].Columns["ID"].ColumnName;
myGridColumn.HeaderText = "选择";
myGridColumn.Width = 50;
myGridColumn.TrueValue = true;
myGridColumn.NullValue = Convert.DBNull;



myTableStyle.GridColumnStyles.Add(myGridColumn);
myTableStyle.GridColumnStyles.Add(Colunm1);
myTableStyle.GridColumnStyles.Add(Colunm2);
dataGridBank.TableStyles.Clear();
dataGridBank.TableStyles.Add(myTableStyle);
这样怎么改?????????????????????????????????????
boyxia 2005-03-04
  • 打赏
  • 举报
回复
winform的话

DataGridBoolColumn ColumnStyle8 = new DataGridBoolColumn();
ColumnStyle8.MappingName = "QX_JS_SFYX";
ColumnStyle8.HeaderText = "有效";
ColumnStyle8.AllowNull = false;
ColumnStyle8.TrueValue = (Decimal)1;//注意这里一定要类型和值一起匹配,有时候为(float)"1";,具体是什么类型要看DataTable.Columns[i].ColumnType看看才知道。
ColumnStyle8.FalseValue = (Decimal)0;
ColumnStyle8.Width = 0;
myTableStyle.GridColumnStyles.Add(ColumnStyle8);

webform的不晓得
jcchou 2005-03-04
  • 打赏
  • 举报
回复
没碰到这种情况
lanlanq 2005-03-04
  • 打赏
  • 举报
回复
谢谢 3tzjq(不要轻言放弃!否则对不起自己),我是要获得datagrid的选中数据,以便修改删除数据
jackie615 2005-03-04
  • 打赏
  • 举报
回复
up
3tzjq 2005-03-04
  • 打赏
  • 举报
回复
最佳解决方案:
在DataSet 的 XML 代码里加入(比如你的Boolean类型的字段为 冻结 ):
<xs:element name="冻结" type="xs:boolean" default="false" minOccurs="0" />

加上 default="false"便始终保持Unchecked状态.

如何得到选中的文件:不知道你的文件路径保存在哪里。如果你获取了文件的路径,可以
if (ile.Exists(path))
lanlanq 2005-03-04
  • 打赏
  • 举报
回复
不会把这样送分,每人要吗,各位帮帮忙
xlkg_ss 2005-03-04
  • 打赏
  • 举报
回复
帮你顶!
加载更多回复(5)

110,571

社区成员

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

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

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