none
app_Code下のクラスと名前空間について RRS feed

  • 質問

  • はじめまして、VWD超初心者のフレックスPと申します。

    似たようなログがあったのですが、今ひとつ良く理解できないので

    申し訳ありませんが、初心者に分かるようにお願いします。

     

    以下のソリューションあるとします。

    c:\...\WebSite1

    ----AppCode

       | ---test.vb  ← 入力チェックメソッド(CheckData())が定義されているクラス

     

    ----Default.aspx  ← メインフォーム

       | ---Default.aspx.vb

     

    ここでDefault.aspxはメインの入力フォームです。

    このDefault.aspxでデータを入力し、OKボタンをクリックすると

    Default.aspx.vbのイベントハンドラからtest.vbのPublicメソッドをcallしたいのです。

     

    この時、test.vbのメソッドからDefault.aspxのASPコントロール(<asp:TextBox...>)に

    直接アクセスし、入力チェックを行ないたいのです。

    できればtest.vbにDefault.aspxのクラス参照を渡したいのですが

    どうやっていいのかよく分かりません。

    単純にDefault.aspx.vbからCheckData(me)としても

    test.vb側でpuclic function CheckData(cls As ○○○)とかしたいのですが

    この○○○に何を指定してよいかもわかりません

    そもそも発想が違うのでしょうか?

     

    初心者すぎて申し訳ありませんが

    ご回答宜しくお願い致します。

     

     

     

     

     

    2007年6月7日 3:06

回答

  • 発想が違います。
    メインフォームの内部データを検証したいのだから、
    メインフォーム内で検証します。
    つまり、メインフォーム内に検証メソッドを用意してください。
    その際、メインフォームやテキストボックスを引数に渡す必要はありません。
    2007年6月7日 3:18

すべての返信

  • CheckData(me) と渡すとaspxのクラス全体を渡すことになりますね。

    チェックしたいのがTextBoxのコントロールだけであれば、そのコントロールを渡したほうがよいのではないでしょうか。

    もしくはTextBoxの内容だけ渡してチェックを行うとか。

     

    どうしてもページ全体を渡したい、という場合であれば、ASP.default_aspxというクラスになっていると思います。

    このあたりはaspxファイルから自動的に生成されるコードを確認するとわかります。

    2007年6月7日 3:16
  • 発想が違います。
    メインフォームの内部データを検証したいのだから、
    メインフォーム内で検証します。
    つまり、メインフォーム内に検証メソッドを用意してください。
    その際、メインフォームやテキストボックスを引数に渡す必要はありません。
    2007年6月7日 3:18
  • どっとねっとふぁんさん、よこけんさん

     

    素早い回答ありがとうございます。

     

    どっとねっとふぁんさん

    meの件はByRefで渡すつもりでしたが

    どうも cls As ASP.default_aspx としても

    ASP.default_aspxが認識されず未定義となってしまいました。

    何ででしょう?

     

    >よこけんさん

    やはり考え方が間違っていましたか。

    せっかくaspxの下にPartialでVBのソース:default.aspx.vbを用意してあるんだから

    それを使えということですよね(笑)

     

    お蔭様ですっきりしました。

     

    有難うございました。

     

     

     

     

     

     

     

    2007年6月7日 3:42