运算符==错误进入asp.net中的gridview rowbound事件

时间:2013-09-21 09:17:34

标签: asp.net gridview

我正在检查GridView1_RowDataBound事件中的复选框值但是得到错误“操作符不能应用于string或bool类型的操作数”..

这是我的相同代码...

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        for (int i = 1; i < e.Row.Cells.Count - 2; i++)
        {
            CheckBox cb = new CheckBox();

            if (e.Row.Cells[i].ToString() == true)
            {
                cb.Checked = true;
            }
            else
            {
                cb.Checked = false;
            }
            e.Row.Cells[i].Controls.Add(cb);
        }
    }
}

请帮帮我.. 提前谢谢..

1 个答案:

答案 0 :(得分:1)

问题在于:

if (e.Row.Cells[i].ToString() == true)
{
    cb.Checked = true;
}

您将字符串值Cells[i].ToString()与布尔值true进行比较。

如果单元格包含表示true或false的字符串值,则需要将其解析为布尔值:

bool result;
if (Boolean.TryParse(e.Row.Cells[i].Value.ToString(), out result))
{
    if (result)
    {
        ....
    }
}
else
{
    // Item is not a valid boolean - throw an exception or just default to false
}