2016-11-03 20 views
-1

私はカプセル化が初めてです。自分のボタンのOnClickイベントから別のクラスのプライベートメソッドに文字列を渡したいと思います。メソッドの中から文字列を設定しようとすると、変数が認識されないと表示されます。どうすれば安全にそれを渡すことができますか?onclickイベントから別のクラスに文字列を渡すには

私のOnClickイベント:あなたはセッション変数内の文字列の値を保持しようとすることができます

public partial class ClassTwo 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      LoadData(); 
     } 
    } 
    private void LoadData() 
    { 
     { 
      string filterText = myNewString; 
     } 
    } 
+0

さて、あなたはメソッド(または* *メソッド)を作成する必要がある内部/公共およびパラメータ – musefan

+0

@musefanとして文字列を渡すことで、それを呼び出すあなたはちょうど私が言っていますlnkbtnKeySearch_Clickを公開しますか?提供されたコードを使って私に例を教えてもらえますか? – fred1234

+0

'ClassTwo'をインスタンス化し、' LoadData'を呼び出す場所にコードを投稿してください。 –

答えて

2

::私はにそれを渡したい

public partial class ClassOne 
    protected void lnkbtnKeySearch_Click(object sender, EventArgs e) 
     { 
      string myNewString = "Change the value of the string"; 
     } 

クラス

protected void lnkbtnKeySearch_Click(object sender, EventArgs e) 
{ 
    Session["myNewString"] = "Change the value of the string"; 
} 

private void LoadData() 
{ 
    string filterText = Session["myNewString"].ToString(); 
} 
+0

ありがとうございます。これは私の問題を解決しました。 .ToStringメソッドの後に余分なセミコロンを削除しました。 – fred1234

2

1つの方法は、MyNewStringを静的にすることです。

public partial class ClassOne 
{ 
    public static string MyNewString{set;get;} 
    protected void lnkbtnKeySearch_Click(object sender, EventArgs e) 
    { 
     MyNewString= "Change the value of the string"; 
    } 
} 

その後

public partial class ClassTwo 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      LoadData(); 
     } 
    } 
    private void LoadData() 
    { 
     { 
      string filterText = ClassOne.MyNewString; 
     } 
    } 
} 
+0

私はアプリケーションのすべてのクライアントが同じ文字列の内容を共有するので、静的変数に文字列を保持することを選択しません。 – meJustAndrew

+0

私はあなたに同意しますが、彼が標準的なものを使用しない場合、彼はそれらを使用したくないと思ったので、私はこの方法を提案しました。そして私はそれが可能な方法の一つだと言いました。セッション[""]は可能な方法ですが、しばらくすると状態をクリアすることがわかります。 – mojo

関連する問題