お世話になっております。
ご存知の方いらっしゃいましたら、ご教授願えますでしょうか?
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も見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
忘れられない激○○料理
これまでに食べたもののなかで、もっとも「激○○」だった料理を教えて下さい。 激辛、でも激甘でも。 激ウマ、でも激マズでも。
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
Page_Load時にボタンクリックイベントを実行するには?
Microsoft ASP
-
PageLoadの後にJavascript実行したい
Microsoft ASP
-
ASPで画面間のパラメタ受け渡し
Microsoft ASP
-
-
4
登録後、呼び出し元ページに戻るには
Microsoft ASP
-
5
ASP.NETで画面の初期化される(IsPostBackがFalseと
Microsoft ASP
-
6
GridviewとDataGridviewの違い
Microsoft ASP
-
7
ASP.NETでのメッセージ画面を出すには
Microsoft ASP
-
8
ASP.NET(VB)VBソースからJavascriptの関数を呼ぶには
Microsoft ASP
-
9
textboxとLabelを動的に変更する
Microsoft ASP
-
10
Webページ上のボタン等の位置を移動したい。
Microsoft ASP
-
11
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
12
C#でフォームのオブジェクト名を変数名で指定
C言語・C++・C#
-
13
ASP.Net 別ウィンドウを開く・ジレンマ編
Microsoft ASP
-
14
ASP.Net ラベルの内容をすぐに更新したい
Microsoft ASP
-
15
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
16
ASP.NET 画面遷移前の状態を保持する?方法
Microsoft ASP
-
17
ASP.NetのGridViewで任意の行クリックで選択を行う方法
Microsoft ASP
-
18
ASP.NET TextBox 入力制限
Microsoft ASP
-
19
VB.NETで、プログラム上から新しいウィンドウを開くをする方法
Visual Basic(VBA)
-
20
【PL/SQL】FROM区に変数を使う方法
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
特定のファイルを他のプロセス...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
ExcelのVBAで、選択したファイ...
-
マクロで、次のコードへ行く前...
-
どうやってもFor文を抜けてしま...
-
VBAの進捗状況をリアルタイ...
-
vbaレポート名の指定が間違って...
-
順番に処理させたい
-
Excel VBA セルの名前があるか...
-
VB.NET SPRED(チェックボック...
-
VB6にてネットワーク上にある共...
-
エクセル VBAで複数セル選択時...
-
CImage::Loadの戻り値は何でし...
-
どう増強すべきか
-
【C#】Page_Loadさせない方法に...
-
VB6.0で、ランタイムエラーを全...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
シグナル 6(SIGABRT)とは?
-
private subモジュールを他のモ...
-
特定の名前のオートシェイプの...
-
どう増強すべきか
-
vbaのエラー対応(実行時エラー...
-
マクロで、次のコードへ行く前...
-
ExcelのVBAで、選択したファイ...
-
どうやってもFor文を抜けてしま...
-
【Vb.net】プリンタジョブの取得
-
Excel VBA セルの名前があるか...
-
エクセル VBAで複数セル選択時...
-
特定のファイルを他のプロセス...
-
【C#】Page_Loadさせない方法に...
-
VBA 複数の行を高速で削除する...
-
Functionで戻り値を複数返す方法
-
シェルスクリプトでファイル内...
-
Word VBA。各マクロの間に待ち...
-
StatusStripの表示が更新されな...
おすすめ情報