如果“”或null,则突出显示gridview单元格

时间:2011-05-25 01:52:39

标签: c# regex 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)而不是空白(“”)。有什么想法吗?

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

可能表现更好。

答案 2 :(得分:1)

Per Pod Mays和Mike Byers关于匹配HTML空白实体'nbsp'的问题,您可以使用HttpUtility.HtmlDecode方法解码html。这会将'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会将完全空的单元格转换为包含空格( )的单元格。

答案 3 :(得分:0)

试试这个:

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