C# 如何根据gridview中的某些条件使复选框处于选中状态

C# 如何根据gridview中的某些条件使复选框处于选中状态,c#,asp.net,gridview,checkbox,C#,Asp.net,Gridview,Checkbox,我有一个加载的数据网格。在该数据网格中,第一列是复选框,第二列是名称。我还在数据库中保存了一个字段名。在这里,如果名称等于我存储在数据库中的数据,我想选中复选框 这里我的问题是,我只有一个复选框要检查。 ex:[如果我的预期结果是要选中的第1、第2和3dr复选框,但我只得到选中的第3个复选框。] 我的示例代码是 foreach (GridViewRow row in GrdProduct.Rows) { if (row.RowType == DataControlRow

我有一个加载的数据网格。在该数据网格中,第一列是复选框,第二列是名称。我还在数据库中保存了一个字段名。在这里,如果名称等于我存储在数据库中的数据,我想选中复选框

这里我的问题是,我只有一个复选框要检查。 ex:[如果我的预期结果是要选中的第1、第2和3dr复选框,但我只得到选中的第3个复选框。]

我的示例代码是

 foreach (GridViewRow row in GrdProduct.Rows)
    {
        if (row.RowType == DataControlRowType.DataRow)
        {
            Label lblproduct = (Label)row.FindControl("lblProduct");
            CheckBox chkSelect = (CheckBox)row.FindControl("chkSelectAll");

            for (int rowIndex = 0; rowIndex < dt.Rows.Count; rowIndex++)
            {
                DataRow r = dt.Rows[rowIndex];

                if (Convert.ToString(r["productName"]) == lblproduct.Text)
                {
                    chkSelect.Checked = true;

                }
                else
                {
                    chkSelect.Checked = false;
                }
            }

        }

最后我得到了答案。。。简单地删除了其他部分

 else
            {
                chkSelect.Checked = false; }

--

谢谢大家…

对不起,我是盲人。您正在数据行中循环,当然您很可能只有一个匹配项。在所有其他情况下,它会立即被取消选中。使用以下命令:

     foreach (GridViewRow row in GrdProduct.Rows)
     {
        if (row.RowType == DataControlRowType.DataRow)
        {
            Label lblproduct = (Label)row.FindControl("lblProduct");
            CheckBox chkSelect = (CheckBox)row.FindControl("chkSelectAll");

            chkSelect.Checked = false;

            for (int rowIndex = 0; rowIndex < dt.Rows.Count || !chkSelect.Checked; rowIndex++)
            {
                DataRow r = dt.Rows[rowIndex];

                if (Convert.ToString(r["productName"]) == lblproduct.Text)
                {
                    chkSelect.Checked = true;

                }
            }

        }
我建议在比较字符串时使用Als


与网格中的数据和控件相比,我还建议进行额外的验证。

您是否尝试过调试,以查看在每次迭代中是否有正确的标签和复选框引用?