以下是我正在使用的内容:
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)而不是空白(“”)。有什么想法吗?
答案 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;
}