我有一个包含三列(ProdID,ProdName,Status)的表。我将其提取到dataSet中,并将其绑定到我的gridview中。我有一个非常基本和简单的rowdatabound事件,如下所示:

 protected void gvProducts_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (e.Row.Cells[2].Text == "False")
            {
                e.Row.BackColor = System.Drawing.Color.PaleVioletRed;
            }
        }
    }


但是,当我看到我的第三列(状态)时,它会转换为复选框,可能是因为它仅包含“ True”或“ False”。同样在我的if条件中:

if (e.Row.Cells[3].Text == "False")


文本值显示如下:


  ”


有人可以建议我吗,如果条件允许,我该如何比较我的身份与真或假。

最佳答案

你可以尝试...

if (((CheckBox)e.Row.Cells[3]).Checked == false)


或者,如果您喜欢的话,活动会更好。

 if(((CheckBox)e.Row.FindControl("YourCheckboxID")).Checked == false)


编辑:由于您正在使用RowDataBound事件,在那个时候行没有您要查找的内容。你需要这样做...

DataRow dr = ((DataRowView)e.Item.DataItem).Row;
if (Convert.ToBoolean(dr["Status"]) == false)

关于c# - 如何在rowdatabound事件的网格 View 中检查状态(真/假)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5025744/

10-09 22:06