- PR -

LostFocusの処理

投稿者投稿内容
ポッキー
常連さん
会議室デビュー日: 2004/01/29
投稿数: 43
投稿日時: 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取得方法をご存知の方がいらっしゃいましたら教えてください。

burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-02-13 15:24
LostFocusイベントをサーバーサイドで取得したいってことでしょうか?
だとしたら
text1.Attributes["onblur"]
にサーバーにポストバックする仕組みを実装するしかないのでは?
LostFocus時にどんな処理を行いたいのでしょうか?
入力検証ですか?
ポッキー
常連さん
会議室デビュー日: 2004/01/29
投稿数: 43
投稿日時: 2004-02-13 15:29
やりたいことは入力されたデータをもとに
LostFocus時に入力されたデータにひもづけられたデータを取得して
他の項目に表示することです。
なので、LostFocusイベントをサーバーサイドで取得したいという
ことになると思います。

ポストバックの仕組みをあまり理解できてないのですが、
LostFocus時にPostBackってPage_Loadの部分で
起きてないようですが、どういうことでしょうか?
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2004-02-13 15:29
引用:

<INPUT id="text1" type="text" runat="server" onblur="text1_Onblur">



引用:

<INPUT id="text1" type="text" runat="server" onblur="text1_Onblur()">




※もう少し頑張りましょう
ポッキー
常連さん
会議室デビュー日: 2004/01/29
投稿数: 43
投稿日時: 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()">

He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2004-02-13 16:35
まず確認してください。
HtmlInputTextクラスにLostFocusイベントは定義されていますか?
定義されていなければイベントは発生しませんので、取得することはもちろん不可能です。

【参照】
HtmlInputText メンバ
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-02-13 16:40
Heさんのいうとおりだと思います。
onblur="text1_Onblur()"
としたところで、クライアントサイドのtext1_Onblur()が呼ばれるだけですから。。。
GetPostBackEventReference()を使用してやれば
実現できないこともないです。かなり力技ですけど。。。
ポッキー
常連さん
会議室デビュー日: 2004/01/29
投稿数: 43
投稿日時: 2004-02-13 16:49
すみません、とんでもない勘違いをしていました。
HtmlInputText メンバ として指定されているもの以外でも
タグの中にイベントマークとしてでてくるものは
イベントとして取れると思い込んでました。

そうすると、テキストボックスではフォーカスを移動したり
Text内をを変えただけだとポストバックされないので、
どうにかしてポストパックを起こしてデータ処理を
しなくてはならなくって、
text1.Attributes["onblur"]
の【=】のあとにつけるjavascriptの処理を考えなくては
いけないということですよね。

スキルアップ/キャリアアップ(JOB@IT)