
お世話になっております。
ご存知の方いらっしゃいましたら、ご教授願えますでしょうか?
Page_Loadイベントについてお尋ねしたいと思います。
フォーム内にいくつかのテキストボックスやを設置し、
テキストボックスの内容をDBへ反映させるための
実行ボタンも設置されていて、これを押した時に
ページロードを行いたいのですが、
テキストボックスの内容が変更される度に、
Page_Loadイベントが起こってしまいます。
Page_Loadイベントでは以下のような処理が行われています。
-------------------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack == false)
{
//テキストのReadOnlyの設定等
.........
}
}
-------------------------------------------------------------
テキストボックスが変更された時には、
必ずPage_Loadイベントが起こるのでしょうか?
また、テキストボックスを変更したときには
Page_Loadイベントを起こさない方法はあるのでしょうか?
初歩的な質問ですみません・・・。
お手数ですがご教授頂きますよう
宜しくお願いいたします。
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.4
- 回答日時:
Windows Formsでの開発をしたことがあるとみましたが、どうでしょうか?
普通のアプリでは、最初呼び出したときにLoadが呼ばれ、表示されている間は基本的にまた呼び出されることがないというのを理解していると見ています。
さて、ネットではどうでしょうか。
基本的にIEなどのブラウザで最初呼び出したときにLoadが呼び出されるというのはイメージできるのだと思います。
ブラウザにaspxが表示されているので、ボタンを押したりしてもまたLoadが呼び出されるというのが理解できないのだと思います。
HTTPなどでは、サーバーに各ユーザーがアクセスしてきて、今どういう状態にいるかという事を把握しません。(ステートレスといいます)
つまり、アクセスしてくるたびに初期化されます。
しかし、これをうまく処理してくれているのがASP.NETです。
ViewStateなどで、状態を把握して前の状態がどうで、今回はこうなったからこういう処理しますねという事をやってくれます。
話が長くなりましたが、では、nekoBさんのやりたい処理はどうするかというと、Loadは必ずよばれますので、その中で処理を分けます。
Page_Load()
{
//毎回する処理を書きます
....
if(IsPostback)
{
//再度呼び出したい時にやる処理を書きます
....
}
else
{
//初回だけやりたい処理を書きます
.....
}
}
こんな感じでしょうか。
No.3
- 回答日時:
> 初回だけPage_Load
それを見分けるためにisPostbackがあるはずですが。
というか、No.2の質問内容確認しました?
ご回答ありがとうございます。
edp3142様の書き込みをよく読まず、早とちりをしてしまいました。
申し訳ございませんでした。
やはりTextBox に AutoPostbackをしていたので、
現象が起こっていました。
AutoPostbackをfalseにしたところ、
無事に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"を設定する事は出来るのでしょうか?
お探しの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も見ています
-
ASP.NET TextBox 入力制限
Microsoft ASP
-
ASP.NetのGridViewで任意の行クリックで選択を行う方法
Microsoft ASP
-
Page_Load時にボタンクリックイベントを実行するには?
Microsoft ASP
-
-
4
画面のリフレッシュを意図的に行いたい
Microsoft ASP
-
5
ASP.NETで画面の初期化される(IsPostBackがFalseと
Microsoft ASP
-
6
ASP.Net 別ウィンドウを開く・ジレンマ編
Microsoft ASP
-
7
VB.NETでMessageBoxを表示したいのですが
その他(プログラミング・Web制作)
-
8
ASPで画面間のパラメタ受け渡し
Microsoft ASP
-
9
Webページ上のボタン等の位置を移動したい。
Microsoft ASP
-
10
ASP.NET(VB)VBソースからJavascriptの関数を呼ぶには
Microsoft ASP
-
11
TextChangeイベントが発生しない
JavaScript
-
12
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
13
.NET SqlDataReader のレコード有無判定
Visual Basic(VBA)
-
14
ASP .NETでファイル選択ダイアログ
Microsoft ASP
-
15
ASP.NET 画面遷移前の状態を保持する?方法
Microsoft ASP
-
16
ASP.netで、CheckBoxListのSelectedIndexChangedが発生しません!
Microsoft ASP
-
17
ASP.NETのコントロールの値をJavaScriptで取得
JavaScript
-
18
GridviewとDataGridviewの違い
Microsoft ASP
-
19
DropDownListの初期値の設定(C#)
その他(プログラミング・Web制作)
-
20
asp.netにてgridviewの列を動的にボタンやチェックボックスを追加して実装したいのですが具
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
vbaのエラー対応(実行時エラー...
-
特定の名前のオートシェイプの...
-
private subモジュールを他のモ...
-
Functionで戻り値を複数返す方法
-
Excel VBA セルの名前があるか...
-
エクセル VBAで複数セル選択時...
-
バッチ処理って何?
-
【C#】Page_Loadさせない方法に...
-
フォルダのアクセス権確認について
-
“try/catch”と“if/else”
-
シェルスクリプトでファイル内...
-
エクセルVBAでロックをかけたい
-
ExcelのVBAで、選択したファイ...
-
入力した値が不正というよりイ...
-
【VBA】エラー処理で別プロシー...
-
エクセルVBAのChangeイベント時...
-
VBAでBook読み込み時の非表示方...
-
シグナル 6(SIGABRT)とは?
-
c# の try の入れ子
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
vbaのエラー対応(実行時エラー...
-
シグナル 6(SIGABRT)とは?
-
どう増強すべきか
-
private subモジュールを他のモ...
-
IF文に時間(何時から何時ま...
-
特定の名前のオートシェイプの...
-
Excel VBA セルの名前があるか...
-
マクロで、次のコードへ行く前...
-
ExcelのVBAで、選択したファイ...
-
特定のファイルを他のプロセス...
-
VB6にてネットワーク上にある共...
-
どうやってもFor文を抜けてしま...
-
Word VBA。各マクロの間に待ち...
-
エクセル VBAで複数セル選択時...
-
【VBA】エラー処理で別プロシー...
-
フォルダのアクセス権確認について
-
VBA For Each 〜 複数条件について
-
StatusStripの表示が更新されな...
-
【C#】Page_Loadさせない方法に...
おすすめ情報