我正在检查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);
}
}
}
请帮帮我.. 提前谢谢..
答案 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
}