我正在将我的应用程序从WebForm转换为WinForm,我正在尝试确定用户选择了哪些复选框。在WebForm中,FindControl()允许我找到复选框。在WinForms中,这是不一样的,或者至少它不允许我这样做。如果在网格视图中选中了复选框,以及/或如何更改此复选框以允许FindControl()工作,我可以使用什么?
这里是我找到控件的地方
var rows = dropdeadGridView.Rows;
bool isChecked = ((CheckBox)rows[j].FindControl("SelectCheckBox")).Checked;//problem
if (isChecked)
{
values += rows[j].Cells[2] + ",";
CurrentOrders = values;
}我的问题在上面,因为在下面,我将其放入一个数组中,并将它们分开以传递给我的查询。
string[] o = CurrentOrders.ToString().Split(',');
for (int i = 0; i < o.Length; i++)
{
SqlConnection dbConn = DBHelper.getConnection();
try
{
using (dbConn)
{
SqlCommand addJob = new SqlCommand(@"UPDATE ODetail SET L_NUMBER = @L_NUMBER WHERE S_O_NUMBER = @SONumber", dbConn);
addJob.Parameters.AddWithValue("@SONumber", o[i]);
addJob.Parameters.AddWithValue("@L_NUMBER", lNumber.Text);
dbConn.Open();
addJob.ExecuteNonQuery();
}
MessageBox.Show("Updated!");
}
catch (Exception ex)
{
throw ex;
}错误码
System.Windows.Forms.DataGridViewRow‘不包含'FindControl’的定义,也找不到接受'System.Windows.Forms.DataGridViewRow‘类型的第一个参数的扩展方法'FindControl’(您缺少使用指令还是程序集引用?)
发布于 2014-06-10 21:31:20
您不需要FindControl in WinForm。你可以简单地做:
bool checkBoxValue = Convert.ToBoolean(dataGridView1.Rows[0].Cells[2].Value); 假设您正在比较第一行,并且复选框位于第3列中。
还可以迭代每一行以获得选中的复选框值,如下所示:
foreach (DataGridViewRow dr in dataGridView1.Rows)
{
bool checkBoxValue = Convert.ToBoolean(dr.Cells[2].Value);
}https://stackoverflow.com/questions/24151122
复制相似问题