|
分類:[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#
|