C# 在 DataGridView 里 增加了一列 CheckBoxColumn ,怎么点击后不能打钩啊?如何设置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 在 DataGridView 里 增加了一列 CheckBoxColumn ,怎么点击后不能打钩啊?如何设置?相关的知识,希望对你有一定的参考价值。

参考技术A 采用js实现。
具体看代码:
<asp:GridView ID="gdvAttrationdis" runat="server" AutoGenerateColumns="False" HorizontalAlign="Center"
Width="98%" AllowPaging="True" PageSize="5">
<Columns>
<asp:TemplateField HeaderText="选择">
<ItemTemplate>
<asp:RadioButton ID="ChkSel" runat="server" ValidationGroup="a" onclick="javascript:CheckOtherIsCheckedByGVIDAttration(this);" />
<asp:Label ID="lblattractionId" runat="server" Visible="false" Text='<%#Eval("attractionId")%>'></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="10%" />
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
<HeaderStyle Height="22px" HorizontalAlign="Left" />
<PagerStyle HorizontalAlign="Center" />
</asp:GridView>
<script language="javascript" type="text/javascript">
function CheckOtherIsCheckedByGVIDAttrationDis(spanChk)

var IsChecked = spanChk.checked;
if(IsChecked)

spanChk.parentElement.parentElement.style.backgroundColor='#D7FFD7';
spanChk.parentElement.parentElement.style.color='#f2f9fd';

var CurrentRdbID = spanChk.id;
var Chk = spanChk;
Parent = document.getElementById('ctl00_ContentPlaceHolder2_gdvAttrationdis');
var items = Parent.getElementsByTagName('input');
for(i=0;i<items.length;i++)

if(items[i].id != CurrentRdbID && items[i].type=="radio")

if(items[i].checked)

items[i].checked = false;
items[i].parentElement.parentElement.style.backgroundColor='#f2f9fd';
items[i].parentElement.parentElement.style.color='#D7FFD7';




</script>

参考资料:自己项目所用

参考技术B 把CheckBoxColumn 列的ReadOnly属性改为false。 参考技术C 1、CheckBoxColumn 该列是否是只读的,即属性ReadOnly=true?
2、整个页面是否重新加载过?本回答被提问者采纳

c# datagridview 中添加comboBox的问题

我在一个窗体里创建了一个datagridview控件,没有绑定数据源,我把其中一列设置成了DataGridViewComboBoxColumn类型,我想通过点击这一列的单元格弹出下拉菜单,而这个菜单是数据库中某一表的其中一列,我怎么才能把这数据库中的表和这个下拉菜单相绑定?各位大侠帮我啊~~~~

参考技术A 这个需要触发的是datagridview的CellContentClick事件,在这个事件里,判断你的datagridview的ColumnIndex是不是所属的combobox的索引,如果是,才进行进一步的操作,例如:
//假定你的
combobox的索引是5,如果不确定,可以通过弹出e.ColumnIndex看看你所点击的combobox的索引是几

private void datagridview_CellContentClick(object sender, DataGridViewCellEventArgs e)

if (e.ColumnIndex == 5 && e.RowIndex != -1 && !datagridview.Rows[e.RowIndex].IsNewRow)

//这个地方写你的事件操作,如:
String id = datagridview.Rows[e.RowIndex].Cells[0].Value.ToString();
......

本回答被提问者采纳
参考技术B DataGridViewComboBoxCell cellColor = (DataGridViewComboBoxCell)dr.Cells[1]; //
cellColor.ValueMember = "ProductId";
cellColor.DisplayMember = "ProductName";
cellColor.DataSource = productList; //一个数据集,比如List<Products>
参考技术C 模板列

以上是关于C# 在 DataGridView 里 增加了一列 CheckBoxColumn ,怎么点击后不能打钩啊?如何设置?的主要内容,如果未能解决你的问题,请参考以下文章

急!在datagridview中修改或增加数据,单击按钮能将写入的数据保存到数据库里?求C#源代码,谢谢交个朋友

C#动态增加行删除行

C# winform 把datagridview一列分别显示在combobox里

c# datagridview 中添加comboBox的问题

如何在一个DataGridView中的一列添加DateTimePicker控件 C#

C#总结DataGridView增加全选列