C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: TextBoxのTextChangedイベントについて


(過去ログ 87 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■51918 / inTopicNo.1)  TextBoxのTextChangedイベントについて
  
□投稿者/ asp初心者 (1回)-(2010/07/26(Mon) 14:14:13)

分類:[ASP.NET (C#)] 

はじめまして。
C#とASP.netでWebアプリケーションを作成しております。
タイトルの件で調べ方の問題もあるかもしれませんが…
原因がわからなかったのでご教授願います。

[処理内容]
TextBoxに6桁のコードを入力する部分があります。
@JavaScriptイベント
「onblur」イベントを使用して6桁に満たない場合左0埋めを行う
AASP.net側イベント
「TextChanged」イベントを使用して入力されたコードからDBに接続しデータを検索する処理をおこなっております。

[問題箇所]
テキスト初期値 ""
@テキストに"1"を入力しフォーカスアウトする
→「onblur」イベントで "000001"に置き換え
→「TextChanged」イベントで発生

A再度テキストに"1"を入力しフォーカスアウトする
→「onblur」イベントで "000001"に置き換え
→サーバーイベントは発生するが、「TextChanged」イベントが発生しない

Bテキストに"000001"を入力しフォーカスアウトする
→「onblur」イベントで "000001"に置き換え
→サーバーイベントは発生しない。

Aの箇所の部分でサーバーイベントが発生するが、「TextChanged」イベントが発生しないという部分がなぜ発生しないのかが不明です。
サーバーイベントを発生させないもしくはサーバー側処理になっても「TextChanged」イベントを発生させたいのですが可能でしょうか?
また「TextChanged」イベントにボタンの「OnClientClick」みたいにfalseを返せばサーバーイベントが発生しないような方法はあるのでしょうか?

説明下手でかなりつたわりにくい文章になってしまいましたが、宜しくお願いします。

====簡単ですがソースです。(かなり簡略しています。スイマセン)==============================================================
[aspx]
<asp:TextBox ID="TextTest" runat="server" AutoPostBack="true" onblur="TestPadLeft()" MaxLength="6" OnTextChanged="TextTest_TextChanged"></asp:TextBox>

[aspx.cs]
protected void TextTest_TextChanged(object sender, EventArgs e)
{
//サーバー処理
}

[javascript]
function TestPadLeft()
{
check_Event = event.srcElement; //画面より情報を取得
checkValue = check_Event.value; //入力された値を取得
checkMaxLen = check_Event.maxLength; //MAX文字数
checkValue = fucZeroFormat(checkValue,checkMaxLen); //MAX文字数まで"0"埋め処理
event.srcElement.value=checkValue;
return true;
}

開発環境です
WindowsXp SP2
.net 2.0
C#

引用返信 編集キー/
■51919 / inTopicNo.2)  Re[1]: TextBoxのTextChangedイベントについて
□投稿者/ 囚人 (520回)-(2010/07/26(Mon) 15:36:40)
>サーバーイベントは発生するが、「TextChanged」イベントが発生しない

「サーバーイベント」って何の事指してるのかな? TextChanged イベントとの違いは何でしょう。

(2)の段階で、000001から値が変わっていないのだから TextChanged イベントが発生しないのは理にかなっているのでは?

引用返信 編集キー/
■51932 / inTopicNo.3)  Re[2]: TextBoxのTextChangedイベントについて
□投稿者/ asp初心者 (3回)-(2010/07/26(Mon) 21:34:31)
No51919 (囚人 さん) に返信
> 「サーバーイベント」って何の事指してるのかな? TextChanged イベントとの違いは何でしょう。
サーバー側にポストして、ASP.netの処理が実行される部分を指しています。
TextChangedもサーバーイベントということで違いはないです。
AはPage_LoadやPage_PreRenderは発生するがTextChangedが発生しないということです。

> (2)の段階で、000001から値が変わっていないのだから TextChanged イベントが発生しないのは理にかなっているのでは?
自分の考えでは、Aの時も「onblur」で値を同一に変更しているので、Bと同一の動作をすると思っていたので、
なぜ違う挙動をするのかがわからなかったのですが…

すいません解決しました。
Htmlソースで見るとTextChangedイベントってonchangeになるのですね^^;

<input name="TextTest" type="text" maxlength="6" onchange="javascript:setTimeout('__doPostBack(\'TextTest\',\'\')', 0)" id="TextTest" onblur="TestPadLeft();" />

onchangeが先に発生していたからでした。

大変アホな質問をしてしまい申し訳ありません。
ご回答ありがとうございました。





解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -