我有一个验证我在页面上的多个输入上运行(例如,检查每个日期条目文本框上的有效日期)。我希望有一个函数来传递信息,而不是在整个页面上复制相同的代码。
现在,我有这个:
Private Function HasDateError(ByRef dateErrorDiv As HtmlGenericControl, txtDate As TextBox) As Boolean
dateErrorDiv.Visible = False
If (date is not valid)
dateErrorDiv.Visible = True
Else
txtDate.Text = Date.Parse(txtDate.Text)
' I know this seems silly, but it fixes problems where users enter a date in a weird format and don't know why it was wrong
End If
Return dateErrorDiv.Visible
End Function
我遇到的问题:
尽管传递了ByRef,但dateErrorDiv.Visible和txtDate.Text并未被此代码更新。
如何传递控件(HtmlGenericControl,TextBox等)以便我可以在函数中更新它们的属性(.Visible,.Text等)?
修改:我已尝试将ByVal
和ByRef
都传递给我,我使用了一个断点来验证行dateErrorDiv.Visible = True
是否被点击,并且该值不是{&1}。改变。
作为测试,我甚至将函数简化为以下(并再次使用断点来验证.Visible的值从未改变过):
Private Function HasDateError(ByRef dateErrorDiv As HtmlGenericControl, txtDate As TextBox) As Boolean
dateErrorDiv.Visible = False
dateErrorDiv.Visible = True
Return dateErrorDiv.Visible
End Function