1

ASP.NETページ、そのコードビハインド、およびクラスファイルがあります。

  • Folder1 / page.aspx(asp.netページ)、これには:が含まれていlabelます
   <asp:Label runat="server" ID="Label1" Visible="false"></asp:Label>
  • Folder1 / page.aspx.vb(コードビハインド)、次のようにconnection.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)
    ' I try to access `Boolean variable` Flag from Class file but I can't.
    End Sub
  • App_Code / connection.vb(私が作成したクラスファイル)
    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-からアクセスするにはどうすればよいですか?Label1ASP.NET pageConnection.vb

2-どうすればfromin(コードビハインド)にアクセスBoolean variableできConnection.vbpage.aspx.vbます

私は本当にこれで立ち往生しています。
ありがとうございました。

4

3 に答える 3

2

(パブリック) プロパティまたはメソッド パラメーターを使用します。

次のように自問する必要があります:接続を担当するクラス(データベースへの接続を想定)がGUIにアクセスできる必要があるのはなぜですか? 異なるレイヤーを互いにハードリンクしないでください。そうしないと、それらを単独で使用できなくなります。

接続クラスに機能させることをお勧めします。それは、フロントエンドを変更することではありません。代わりに、コントローラー (aspx ページ) がその GUI を管理し、接続クラスを呼び出して、戻り値を使用して次に何を行うかを決定する必要がありLabelます。

したがってBoolean、ユーザーが有効かどうかを示すためにa を返します。

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
于 2013-03-19T10:04:25.770 に答える
1

フラグをプロパティとして作成し、このプロパティを checkusernameExists 関数に設定します

 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
于 2013-03-19T10:05:01.553 に答える
1

関数を使用して値を返し、ラベルをパラメーターとして渡すことができます。

Public Function SaveChanges(ByRef Label1 As Label, ByVal username1 As String) As Boolean
{
    Return True
}

ラベルのオブジェクトを渡すのではなく、ラベルのプロパティを関数に渡す方が良いでしょう。これは、2 つのクラスを結合するためです。

于 2013-03-19T10:00:15.863 に答える