お世話になっております。
ご存知の方いらっしゃいましたら、ご教授願えますでしょうか?
Page_Loadイベントについてお尋ねしたいと思います。
フォーム内にいくつかのテキストボックスやを設置し、
テキストボックスの内容をDBへ反映させるための
実行ボタンも設置されていて、これを押した時に
ページロードを行いたいのですが、
テキストボックスの内容が変更される度に、
Page_Loadイベントが起こってしまいます。
Page_Loadイベントでは以下のような処理が行われています。
-------------------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack == false)
{
//テキストのReadOnlyの設定等
.........
}
}
-------------------------------------------------------------
テキストボックスが変更された時には、
必ずPage_Loadイベントが起こるのでしょうか?
また、テキストボックスを変更したときには
Page_Loadイベントを起こさない方法はあるのでしょうか?
初歩的な質問ですみません・・・。
お手数ですがご教授頂きますよう
宜しくお願いいたします。
No.1
- 回答日時:
ポストバックの発生源を調べたいだけなら、__EVENTTARGETを見れば分かりますよ。
if(Request.Params("__EVENTTARGET") = TextBox1.UniqueID)
{
}
>テキストボックスが変更された時には、
>必ずPage_Loadイベントが起こるのでしょうか?
はい
>また、テキストボックスを変更したときには
>Page_Loadイベントを起こさない方法はあるのでしょうか?
一応OnLoad等で小細工をすれば、Page_Loadへ行かないことは可能です。
ご回答ありがとうございます。
aspx上で言語をC#と宣言する際、AutoEventWireup="true"になっているため、
暗黙的にPage_Loadが起こっていたようです。
しかし、Page_Loadが起こらないと出来ない処理があるため、
初回だけPage_Loadをさせて、
以後AutoEventWireup="false"になるようにしたいのですが・・・。
質問は少し変わってしまいますが、
aspx.cs上でAutoEventWireup="false"を設定する事は出来るのでしょうか?
No.2ベストアンサー
- 回答日時:
TextBox に AutoPostback が指定されていませんか?
PostBack(ポストバック)が発生すると必ず Page_Load が呼ばれます。
ポストバックは ASP.NET で開発する上で必須事項なので、学習されてください。
また、質問は ASP のカテゴリに「ASP.NET C#です」と書くとよいでしょう。
参考URL:http://www.atmarkit.co.jp/fdotnet/vblab/aspnetfo …
ご回答ありがとうございます。
aspx上で言語をC#と宣言する際、AutoEventWireup="true"としているため、
暗黙的にPage_Loadが起こっていたようです。
しかし、Page_Loadが起こらないと出来ない処理があるため、
初回だけPage_Loadをさせて、
以後AutoEventWireup="false"になるようにしたいのですが・・・。
質問は少し変わってしまいますが、
aspx.cs上でAutoEventWireup="false"を設定する事は出来るのでしょうか?
No.3
- 回答日時:
> 初回だけPage_Load
それを見分けるためにisPostbackがあるはずですが。
というか、No.2の質問内容確認しました?
ご回答ありがとうございます。
edp3142様の書き込みをよく読まず、早とちりをしてしまいました。
申し訳ございませんでした。
やはりTextBox に AutoPostbackをしていたので、
現象が起こっていました。
AutoPostbackをfalseにしたところ、
無事にPage_Loadが起こらなくなりました。
皆様ご丁寧に教えて頂きありがとうございました。
No.4
- 回答日時:
Windows Formsでの開発をしたことがあるとみましたが、どうでしょうか?
普通のアプリでは、最初呼び出したときにLoadが呼ばれ、表示されている間は基本的にまた呼び出されることがないというのを理解していると見ています。
さて、ネットではどうでしょうか。
基本的にIEなどのブラウザで最初呼び出したときにLoadが呼び出されるというのはイメージできるのだと思います。
ブラウザにaspxが表示されているので、ボタンを押したりしてもまたLoadが呼び出されるというのが理解できないのだと思います。
HTTPなどでは、サーバーに各ユーザーがアクセスしてきて、今どういう状態にいるかという事を把握しません。(ステートレスといいます)
つまり、アクセスしてくるたびに初期化されます。
しかし、これをうまく処理してくれているのがASP.NETです。
ViewStateなどで、状態を把握して前の状態がどうで、今回はこうなったからこういう処理しますねという事をやってくれます。
話が長くなりましたが、では、nekoBさんのやりたい処理はどうするかというと、Loadは必ずよばれますので、その中で処理を分けます。
Page_Load()
{
//毎回する処理を書きます
....
if(IsPostback)
{
//再度呼び出したい時にやる処理を書きます
....
}
else
{
//初回だけやりたい処理を書きます
.....
}
}
こんな感じでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- IT・エンジニアリング ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:17
- IT・エンジニアリング ★お手上げ状態です。助けてください。ActiveReportについて 1 2023/08/20 04:29
- Visual Basic(VBA) ★お手上げ状態です。助けてください。ActiveReportについて 1 2023/08/20 04:27
- Visual Basic(VBA) Application.InputBoxの表示形式 2 2022/08/09 22:32
- 英語 Greater stress was reported in axial direction at 1 2022/07/20 12:46
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Excel(エクセル) エクセルのファイルを複数のPCで同期する方法は? 7 2022/11/23 17:35
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
ASPで画面間のパラメタ受け渡し
Microsoft ASP
-
ASP.NET(VB)VBソースからJavascriptの関数を呼ぶには
Microsoft ASP
-
web.configとは?(初心者です)
Microsoft ASP
-
-
4
javascriptでASPにデータを渡す
JavaScript
-
5
ASP.NetのGridViewで任意の行クリックで選択を行う方法
Microsoft ASP
-
6
PageLoadの後にJavascript実行したい
Microsoft ASP
-
7
ASP.netで、CheckBoxListのSelectedIndexChangedが発生しません!
Microsoft ASP
-
8
ポストバック時の画面スクロール位置の保持
Microsoft ASP
-
9
ASP.NETで画面の初期化される(IsPostBackがFalseと
Microsoft ASP
-
10
GridviewとDataGridviewの違い
Microsoft ASP
-
11
ASP .NETでファイル選択ダイアログ
Microsoft ASP
-
12
ASP.NETでのメッセージ画面を出すには
Microsoft ASP
-
13
[ASP.NET]DropDownListのDB連携のやり方。
Microsoft ASP
-
14
子ウィンドウを常に手前表示、親ウィンドウは操作させない
JavaScript
-
15
EXCELファイルの複数ダウンロードについて
Microsoft ASP
-
16
TextChangeイベントが発生しない
JavaScript
-
17
【ASP2.0】TextBoxのフォーカスアウトでPostBackを実装させたい
Microsoft ASP
-
18
【ASP.NET】 GroupBoxコントロールについて
その他(プログラミング・Web制作)
-
19
登録後、呼び出し元ページに戻るには
Microsoft ASP
-
20
CloseとDisposeの違い
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どうやってもFor文を抜けてしま...
-
IF文に時間(何時から何時ま...
-
【C#/Java?】try-catchでcatch...
-
iPhoneのニューラルエンジンっ...
-
特定の名前のオートシェイプの...
-
Excel VBA セルの名前があるか...
-
VB6にてネットワーク上にある共...
-
StatusStripの表示が更新されな...
-
エクセルVBAでロックをかけたい
-
ListViewから選択中の文字列を取得
-
特定のファイルを他のプロセス...
-
vbaのエラー対応(実行時エラー...
-
UWSCのTHREADについて
-
決まった時刻に処理を行いたい
-
Functionで戻り値を複数返す方法
-
C++ Builder6.0 TNMFTPコンポー...
-
C# 指定時間(秒間)の間処理を...
-
VBAの進捗状況をリアルタイ...
-
検索サイトで、検索結果に広告...
-
Windows APIのメソッドをPInvok...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
private subモジュールを他のモ...
-
IF文に時間(何時から何時ま...
-
マクロで、次のコードへ行く前...
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
特定のファイルを他のプロセス...
-
ExcelのVBAで、選択したファイ...
-
Excel VBA セルの名前があるか...
-
どう増強すべきか
-
Word VBA。各マクロの間に待ち...
-
【VBA】エラー処理で別プロシー...
-
UWSCのTHREADについて
-
シェルスクリプトでファイル内...
-
ドリブン??
-
Functionで戻り値を複数返す方法
-
iPhoneのニューラルエンジンっ...
-
エクセル VBAで複数セル選択時...
-
COBOL OCCURSで指定したデータ...
-
どうやってもFor文を抜けてしま...
おすすめ情報