- - PR -
LostFocusの処理
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-13 14:44
HtmlInputTextのLostFocusのイベントを取得したいのですが、
以下のように記述しても取得することができません。 言語はC#を使用しています。 HTMLのなかで以下のように宣言し <INPUT id="text1" type="text" runat="server" onblur="text1_Onblur"> プログラム中で public void text1_Onblur(object o, EventArgs e){} と表記しているのですが、LostFocus時に【ページのエラー】と出てしまします。 試しにPage_Loadイベント内でjavascriptで以下のように記述したところダイアログが 表示されました。 text1.Attributes["onblur"]="javascript:alert('!!');"; javascriptでプログラム中のメソッドをよぶ方法が別にあるのでしょうか? LostFocus取得方法をご存知の方がいらっしゃいましたら教えてください。 | ||||||||
|
投稿日時: 2004-02-13 15:24
LostFocusイベントをサーバーサイドで取得したいってことでしょうか?
だとしたら text1.Attributes["onblur"] にサーバーにポストバックする仕組みを実装するしかないのでは? LostFocus時にどんな処理を行いたいのでしょうか? 入力検証ですか? | ||||||||
|
投稿日時: 2004-02-13 15:29
やりたいことは入力されたデータをもとに
LostFocus時に入力されたデータにひもづけられたデータを取得して 他の項目に表示することです。 なので、LostFocusイベントをサーバーサイドで取得したいという ことになると思います。 ポストバックの仕組みをあまり理解できてないのですが、 LostFocus時にPostBackってPage_Loadの部分で 起きてないようですが、どういうことでしょうか? | ||||||||
|
投稿日時: 2004-02-13 15:29
?
! ※もう少し頑張りましょう | ||||||||
|
投稿日時: 2004-02-13 16:22
LostFocusと話がずれますが、
<INPUT id="text1" type="text" runat="server" onblur="text1_Onblur()"> ↑の書き方と <INPUT id="text1" type="text" runat="server" onblur="text1_Onblur"> ってどう違うんですか? ボタンなどは <input id="button1" type="button" runat="server" onserverclick="button1_Click"> でイベントを取得することができます。 これも本当は↓と書いたほうがいいのでしょうか? <input id="button1" type="button" runat="server" onserverclick="button1_Click()"> | ||||||||
|
投稿日時: 2004-02-13 16:35
まず確認してください。
HtmlInputTextクラスにLostFocusイベントは定義されていますか? 定義されていなければイベントは発生しませんので、取得することはもちろん不可能です。 【参照】 HtmlInputText メンバ | ||||||||
|
投稿日時: 2004-02-13 16:40
Heさんのいうとおりだと思います。
onblur="text1_Onblur()" としたところで、クライアントサイドのtext1_Onblur()が呼ばれるだけですから。。。 GetPostBackEventReference()を使用してやれば 実現できないこともないです。かなり力技ですけど。。。 | ||||||||
|
投稿日時: 2004-02-13 16:49
すみません、とんでもない勘違いをしていました。
HtmlInputText メンバ として指定されているもの以外でも タグの中にイベントマークとしてでてくるものは イベントとして取れると思い込んでました。 そうすると、テキストボックスではフォーカスを移動したり Text内をを変えただけだとポストバックされないので、 どうにかしてポストパックを起こしてデータ処理を しなくてはならなくって、 text1.Attributes["onblur"] の【=】のあとにつけるjavascriptの処理を考えなくては いけないということですよね。 |