如何从gridview ASP.NET中的selectedrow获取布尔值

时间:2015-03-17 20:19:08

标签: c# asp.net gridview

如何从ASP.NET中选定的gridview行获取布尔值, 这就是我从gridview获取正常字符串的方法,它可以正常工作

string name = GridViewSokEvent.SelectedRow.Cells[9].Text;

Altough当我尝试使用boolean时它不会工作,如果有人知道如何做或有任何提示,请告诉我,谢谢!

3 个答案:

答案 0 :(得分:0)

Boolean check = Convert.ToBoolean(GridViewSokEvent.SelectedRow.Cells[9].Text));

不要忘记异常处理。

UPD。如果你确实得到了例外

很可能你的单元格包含:DBNull或null,或空字符串"",既不构成布尔值True或False,也不构成0或1.所以你需要一个if语句来检查您的单元格包含的字符串是" True"或"错误"或" 0"或" 1"。据我所知,Convert.ToBoolean()不够智能,无法处理其他任何事情。

Boolean check = False;  //Have to initialize outside the if  
string message = GridViewSokEvent.SelectedRow.Cells[9].Text;
    if (message == "True" || message == "False" || message == "0" || message == "1")
    {
         check = Convert.ToBoolean(message);
    }

答案 1 :(得分:0)

由于您使用的是gridview布尔值,因此它们会为您生成一个复选框,您可以从中获取bool值,这样的事情应该有效:

 CheckBox c = (CheckBox)GridViewSokEvent.SelectedRow.FindControl("CheckBox1");
            if(c.Checked == true)
            {
                 //do something
            }
            else if(c.Checked == false)
            {
                 //do something 
            }

答案 2 :(得分:0)

古老的问题,但这也许对其他人来说是一个很好的解决方案:

Boolean check = GridViewSokEvent.SelectedRow.Cells[9].Value is DBNull ? false:(bool)GridViewSokEvent.SelectedRow.Cells[9].Value;