VB.Net-如何将GridView中的2列比较为数字?

时间:2019-04-19 10:11:22

标签: asp.net vb.net

我有一个GridView,我计划根据特定条件在每行中添加不同的颜色。

一种这样的条件是,如果第6列中的数字大于第7列中的数字,则以特定颜色为行着色。

 If e.Row.Cells(6).Text > e.Row.Cells(7).Text Then
            e.Row.BackColor = ColorTranslator.FromHtml("#FDD533")
 Else

但是,当我测试代码时,似乎只有在第6列的最左值大于第7列时才更改颜色,而不管第6列有几百个而第7列有几千个

我相信原因是我在text语句中使用If引起的。但是,我认为可以更改的任何数字实例似乎都不适合代码:

If e.Row.Cells(6).Number > e.Row.Cells(7).Number Then

If e.Row.Cells(6).Integer > e.Row.Cells(7).Integer Then

这些示例向我显示一条消息

'Number' is not a member of 'System.Web.UI.WebControls.TableCell'

与当前代码兼容的我还能使用什么?

1 个答案:

答案 0 :(得分:1)

我认为您缺少演员表。我不确定您是只比较整数还是复杂数字,如果您不知道我建议您直接将其转换为双精度 >:

If Convert.ToDouble(e.Row.Cells(6).Text) > Convert.ToDouble(e.Row.Cells(7).Text) Then
      e.Row.BackColor = ColorTranslator.FromHtml("#FDD533")
Else

Convert.ToDouble 会将任何文本转换为数字。

有关投射的更多信息:

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/how-to-convert-a-string-to-a-number

https://www.dotnetheaven.com/article/casting-integer-to-long-single-and-double-using-vb.net

如果您可能有一些空值,则可以使用 TryCast

https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/operators/trycast-operator