問題タブ [page-lifecycle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
104 参照

asp.net - ASP.NET で生成されたすべての Javascript が実行されたことを検出する

現在、RadTreeView を含むページがあります。RadTreeView の各ノードには、ASP.NET Ajax CollapsiblePanelExtender があります。コード ビハインドでは、いくつかのビジネス ロジックに基づいて、特定のパネルを展開し、特定のパネルを折りたたんでいます。ASP.NET で生成されたすべての Javascript (CollapsiblePanelExtender の折りたたみ/展開) が実行されたことを検出する方法はありますか? 要素に対して行動する必要がありますが、すべての展開と折りたたみが行われるまでは行いません。

0 投票する
2 に答える
1447 参照

asp.net - ポストバックでの動的コントロールの構築 (asp.net)

私はこれが答えられたと確信していますが、私はそれを見つけることができません...おそらく用語が非常に多くの異なる質問に使用されているためです.とにかく.

ポストバックなどでの動的コントロールの構築に関する情報を init イベントに保存する最良の方法はどのようにすればよいでしょうか...

たとえば、古典的な「アンケート」のシナリオを考えてみましょう...question.aspx?id=1

  1. クエリ文字列から ID を取得する
  2. どこからでも質問を読み込んでコントロールを動的に構築するか、各質問のユーザーコントロールを動的に追加して、質問の数などを指定します
  3. ページの投稿が返されます (ユーザーが送信を押したと思います!)
  4. 初期化イベントで...質問コントロールを再作成するためにIDをどこに保存したはずですか?

これまでに試したこと/考えたこと:

  • ページに関連するため、最初に値をビューステートに保存しましたが、ビューステートの値はページの初期化では使用できません (または??)
  • 隠し変数を作成し、フォーム コレクションの値にアクセスする
  • session - session を使いたくありません。問題があると思われます。たとえば、ユーザーが 2 つのアンケートを表示した場合はどうなりますか?
  • クエリ文字列をもう一度?しかし、それを変更するのは簡単すぎるように思えますし、動的コントロールは意味をなさないでしょう...
  • コントロール自体で?たとえば、アンケート ID をすべて無視して、単に質問 ID から外れてしまうのでしょうか?? コントロール ID は、controlQ1、controlQ2 などの controlQ# のような形式であると仮定します。これは、各質問 ID が一意でなければならないことを意味します

ヘルプ/ガイダンスなどは大歓迎です!!!

0 投票する
2 に答える
593 参照

c# - カスタムコントロールイベントをいつ発生させるか?

カスタムコントロールを作成しています。ホイールを再発明し、UserControlクラスから派生したカスタムButtonコントロールを作成しているとしましょう(例のみ)

もちろん、Clickイベントハンドラーがあります。今私の問題は、いつこのイベントハンドラーを呼び出すのですか?Pages OnLoadとOnLoadCompleteの間で発生することは知っていますが、Click他の制御イベントと同時に発生するように、どのイベントに接続できるかはよくわかりません。

カスタムコントロールイベントをいつ呼び出すと思いますか?

0 投票する
3 に答える
376 参照

asp.net - .Net アプリケーションで href リンクをクリックした後にトリガーされるイベントは何ですか?

クライアントはクエリ文字列を介して値を渡したいと考えていますが、クエリ文字列がブラウザのアドレス バーに表示されることを望んでいません。渡される値は追跡用です。href リンクをクリックした後、ポストバックが発生しないことはわかっています。

ブラウザーのアドレス バーに表示せずに、クエリ文字列から値を取得する方法はありますか? これは不可能かもしれませんが、間違っているかもしれません。誰か答えがあるかどうか見てみたいと思います。

0 投票する
2 に答える
188 参照

asp.net - ASP.NETページライフサイクルのイベント処理ポイントですべてのコントロールが初期化されないのはなぜですか?

Webパーツにユーザーコントロールが埋め込まれています。次のコードスニペットがあります。

(OnLoadまたはCreateChildControlsメソッドはありません。)

の最初の行にブレークポイントを設定すると、次のgoButton_Clickようになります。

  • searchTextBox初期化
  • goButton初期化
  • nextButtonNULL
  • pushpins初期化
  • currentPageLabelNULL

一部のコントロールが初期化され、他のコントロールが初期化されないのはなぜですか?Textプロパティを更新したい場合、どうすればこれを回避できcurrentPageLabelますか?

アップデート:

ページのライフサイクル全体にブレークポイントを設定しましたが、それが初期化されることはnextButtonありません。ブレークポイントは、OnLoad、CreateChildControls、goButton_Click、OnPreRender、Render、およびOnUnloadに配置されました。currentPageLabel

0 投票する
4 に答える
15265 参照

asp.net - ブラウザの戻るボタンを押すとどうなりますか?

次のシナリオを検討してください。

  1. ASP.NET を使用して構築された Web サイトのページにアクセスしました。このページは、ASP.NET サーバー コントロールを含む単純な aspx ページです。

  2. 同じ Web サイトの別のページに移動するリンクをクリックしました。

  3. BACKブラウザのボタンをクリックしました。

質問: ページのライフサイクルに関してはどうなりますか? すべてのイベントが発生しますか、それともブラウザはリクエストを行わずにページのキャッシュされたバージョンを表示するだけですか?

0 投票する
1 に答える
497 参照

.net - DataBind でカプセル化された DropDownList の項目を選択する

私は、高度な操作のために多くのプロパティをUserControlカプセル化することを主な目的とした複合体を持っています。DropDownList

PreRender以前に設定されたプロパティに応じて、イベントでリストが作成されています。

最も使用されるプロパティは ClientID です。

Getter は通常、このコントロールを含むページでControlPameters呼び出されます。SqlDataSources

セッター - マークアップから: <uc:UserControl1 runat="server" ClientID='<%# Bind("ID") %>' />.

質問は次のとおりです。

Bindセッター fromが以前に呼び出されるのはなぜPreRenderですか? そしてDropDownList空で、アイテムの選択が機能しません! この動作を回避するにはどうすればよいですか?

Edit1:わかりました、そうではありませPreRenderInit。しかし、DropDownList1_DataBinding はまだプロパティ セッターの後に呼び出されています。

0 投票する
5 に答える
6577 参照

c# - アプリケーションにページが読み込まれるたびに呼び出される関数はありますか?

アプリケーションに任意のページが読み込まれるたびにスクリプトを実行できるようにしたい。これを簡単に追加できる場所はありますか?または、ページを読み込むたびにコードを追加する必要がありますか?

0 投票する
3 に答える
2229 参照

c# - 継承されたユーザー コントロールの ASP.NET イベント ライフサイクル

疑似コードを許してください、しかしそれは簡単な質問です:

マークアップにテキスト ボックス (id = "txtbox") を含むユーザー コントロール (myControlBase : UserControl) を作成します。その分離コードで、メソッド SayHello(string s){ txtbox.Text = s; を記述します。}。

myControlBase (myControl : myControlBase) を拡張する別のユーザー コントロールを作成します。この子コントロールの page_load で、SayHello("hello"); を呼び出します。txtbox が null であることを知らせる実行時エラーを受け取ります (明らかにまだ作成されていません)。

では、ユーザー コントロールから継承し、子コントロールがベース コントロールのマークアップにアクセスできるようにするにはどうすればよいでしょうか。これらのコントロールのイベント ライフサイクルについて調べてみましたが、理解できていないようです。

何か案は?

-編集-

すみません、ASP.Netです。このコードでより明確になったとしたら、問題の説明がかなり不十分だったに違いありません。

txtBox は、myControlBase のマークアップに存在する ASP:Textbox コントロールです。

これは SayHello("hello"); で失敗します。txtBox が Null を返したためです。

0 投票する
1 に答える
362 参照

c# - 要求または応答OnUnload()にアクセスしますか?

次のようなものを使用してCookieを保存したい

OnUnload()ページのライフサイクルが終了した後なので、イベントに入れるのは理にかなっています。

ただし、この段階ではRequestResponseすでにアンロードされているため、nullref例外をスローします。

誰かがこれを回避するために脳の嵐を持っていますか?

私が考えることができるのはそれを入れることOnPreRender()だけです、しかしこれがあまりにも「すぐに」かもしれないのではないかと心配しています。