[英]Get Checked Item in Check Box Column in Data Grid View - C# Windows form
如果Attendance_Status 中的值=“Attended”,我需要加载列Status 中的Checked Value,如果该值是Unattended,则取消选中。
下面是表格的屏幕截图:
我正在尝试添加下面的代码,但它不起作用:
foreach (DataGridViewRow row in dataGridView2.Rows) {
if (row.Cells["Attendance_Status"].Value == "Attendance")
{
row.Cells["Status"].Selected = true;
}
else
{
row.Cells["Status"].Selected = false;
}
}
请帮忙!!
您可以尝试在 gridview 中查找控件,然后根据是否选择该控件的值检查 0 或 1,如下所示。
foreach (GridViewRow row in gvGridview.Rows)
{
CheckBox cbAddAction = (CheckBox)row.FindControl("chkAddAction");
int addPermission = Convert.ToInt16(cbAddAction.Checked);
}
您可以查看下面的 gridview 定义/声明以获得更多帮助。
<asp:GridView ID="gvUserPermission" runat="server" AllowPaging="True" AutoGenerateColumns="False"
CssClass="table table-striped table-bordered bootstrap-datatable" HorizontalAlign="Center"
OnRowDataBound="gvUserPermission_RowDataBound" PageSize="50"
DataKeyNames="ModuleId"
onselectedindexchanged="gvUserPermission_SelectedIndexChanged">
<PagerSettings FirstPageText="« First" LastPageText="Last »" Mode="NumericFirstLast"
PageButtonCount="10" />
<Columns>
<asp:BoundField DataField="Modulename" HeaderText="Module Name" ItemStyle-Width="450px"
SortExpression="Modulename" />
<asp:TemplateField HeaderText="Add Action">
<ItemTemplate>
<asp:CheckBox ID="chkAddAction" Checked='<%# Eval("AddAction") == DBNull.Value ? false : Convert.ToBoolean(Eval("AddAction")) %>'
runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
要加载数据,您可以使用以下方法。 它将根据数据检查值,无需任何额外循环。
<asp:TemplateField HeaderText="Edit Action">
<ItemTemplate>
<asp:CheckBox ID="chkEditAction" Checked='<%# Eval("EditAction") == DBNull.Value ? false : Convert.ToBoolean(Eval("EditAction")) %>'
runat="server" />
</ItemTemplate>
</asp:TemplateField>
在SQL Server数据源写一个case语句返回NULL
,用于没有值Attended
下面给出。
create table Attendace (Id int, Attendance_Status Varchar(50))
insert into Attendace values (1, 'Attended'),
(2, 'Not Attended')
select id
, case Attendance_Status when 'Attended' then 1 else null
end as Attendance_Status
from Attendace
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.