我有ASP.NET页面,它的代码隐藏和类文件:
label
: <asp:Label runat="server" ID="Label1" Visible="false"></asp:Label>
Dim x As New Connection
Protected Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click
x.checkusernameExists(TextBoxUsername.Text)
' I try to access `Boolean variable` Flag from Class file but I can't.
End Sub
Public Class Connection
Public Sub checkusernameExists(ByVal username1 As String)
Dim flag as Boolean
' I try to access here `Label1.text` & `Label1.visible` to work on it but I can't.
End Sub
End Class
1 - 如何从Label1
中的ASP.NET page
访问Connection.vb
?
2 - 如何从Boolean variable
中的Connection.vb
访问page.aspx.vb
(代码隐藏)?
我真的被困在这里 谢谢。
答案 0 :(得分:2)
使用(公共)属性或方法参数。
你必须问自己:为什么一个负责连接的类(我假设数据库)可以访问你的GUI?不要将不同的层彼此硬链接,否则您将无法单独使用它们。
我建议让连接类做它的工作,而不是修改你的前端。相反,控制器(aspx页面)应该管理它的GUI并调用连接类,使用返回值来确定Label
下一步该做什么。
因此,请返回Boolean
以指示用户是否有效:
Public Class Connection
Public Shared Function checkusernameExists(ByVal username1 As String)As Boolean
Dim userExists As Boolean
' acces db to check if the username exists '
Return userExists
End Sub
End Class
在您的页面中:
Protected Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click
Dim userExists As Boolean = Connection.checkusernameExists(TextBoxUsername.Text)
Label1.Visible = userExists
If Label1.Visible Then Label1.Text = "Hello again " & TextBoxUsername.Text
End Sub
答案 1 :(得分:1)
您可以使用Function返回值并将标签作为参数传递。
Public Function SaveChanges(ByRef Label1 As Label, ByVal username1 As String) As Boolean
{
Return True
}
如果将标签属性传递给函数而不是在将两个类连接起来时传递标签对象,那会更好。
答案 2 :(得分:1)
将标志设为属性,并将此属性设置为check username Exists function
Public Class Connection
Public Property Flag as Boolean
Public Sub checkusernameExists(ByVal username1 As String)
// set flag here
Flag = True // or whateever value returned from the database
' I try to access here `Label1.text` & `Label1.visible` to work on it but I can't.
End Sub
End Class
并访问page.aspx.vb文件中的此实例级属性
Dim x As New Connection
Protected Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click
x.checkusernameExists(TextBoxUsername.Text)
Label1.Visible= x.Flag;
' I try to access `Boolean variable` Flag from Class file but I can't.
End Sub