2011-05-25 86 views
1

下面是我使用的是什么:突出gridview的细胞,如果“”或空

if (Regex.Match(gv.Rows[i].Cells[5].Text, "^[\x20 ]").Success) 
      { 
       gv.Rows[i].Cells[5].Attributes.Add("Style", "background: Red"); 
       Save.Visible = false; 
      } 

但只突出了空值(的String.Empty),而不是空白(”“)。有任何想法吗?

回答

1
if (String.IsNullOrWhiteSpace(gv.Rows[i].Cells[5].Text)) 
{ 
    gv.Rows[i].Cells[5].Attributes.Add("Style", "background: Red"); 
    Save.Visible = false; 
} 

可能会表现得更好。

+0

我如何包含“”? http://imgur.com/OroWv – 2011-05-25 02:10:48

+0

'IsNullOrWhiteSpace'将匹配任何空字符串,空字符或空白字符。所以如果'.Text'属性真的是一个只有一个空格的字符串,它应该匹配。对我来说,这并非如此。如果'.Text'不是'string'类型,那么你可能需要'.Text.ToString()'。 – 2011-05-25 02:17:17

+1

一些细胞返回nbsp。我认为这是问题 – 2011-05-25 02:29:12

1

为什么不使用if(string.IsNullOrWhiteSpace(gv.Rows[i].Cells[5].Text))

这将提供相同的(正确的)功能

+0

这将不匹配单个空格 – 2011-05-25 01:59:29

+0

由于某些原因,我更新了答案 – PostMan 2011-05-25 02:02:50

+1

这不起作用。 – 2011-05-25 02:05:52

0

试试这个:关于HTML空白实体“NBSP”,您可以使用HttpUtility.HtmlDecode方法将HTML解码匹配

if (Regex.Match(gv.Rows[i].Cells[5].Text, "^[\\s]?$").Success) 
{ 
    gv.Rows[i].Cells[5].Attributes.Add("Style", "background: Red"); 
    Save.Visible = false; 
} 
1

每POD梅斯和迈克·拜尔斯问题。这会将'nbsp'html实体转换为'',因此可以通过IsNullOrWhiteSpace进行匹配。

if (String.IsNullOrWhiteSpace(HttpUtility.HtmlDecode(gv.Rows[i].Cells[5].Text))) 
{ 
    gv.Rows[i].Cells[5].Attributes.Add("Style", "background: Red"); 
    Save.Visible = false; 
} 

注意,文本解码是重要的,因为在GridView将完全空细胞转化为细胞与它们的空间( )。