非常奇怪:一个数据在DB中为null,在DataGrid ItemDataBound时候却为
e.Item.Cells[2].Text == " "为true
e.Item.Cells[2].Text == string.Empty || e.Item.Cells[2].Text == null 为false
我想问:值怎么回为  的呢?

解决方案 »

  1.   

    用(Server.HtmlDecode(e.Item.Cells[2].Text).Trim() == string.Empty)来判断吧。
      

  2.   

    我也遇到过这种问题,但是我发现在数据库中,那个值已经为&nbsp了,可能是你添加代码的程序有问题,我当时的问题是出现在Insert语句中。你可以把这种语句Response.Write出来,查查错误的原因!
      

  3.   

    连这个都觉得奇怪么?我觉得问的人有点奇怪哦。DataGrid 在绑定数据时,如果数据为 DBNull.Value,自动把单元格的值赋为空格,Html 表示为 (&nbsp;)。有什么奇怪的?写过 html 的都知道,如果表格里 <td></td> 这么写的话,这个单元格是不显示的,会漏一块空,很难看,必须写成 <td>&nbsp;</td> 才能保证表格的完整性。
      

  4.   

    BTW:如果你想去一个单元格绑定前的数据,应该使用 DataBinder,而不是去取 Cell 里的值,那个是经过了格式化的,并一定是原值了。如下:object val = DataBinder.Eval(e.Item.DataItem, "yourDataFieldName");
    if (val is DBNull)
    {
      // ... ...
    }