問題タブ [dynamic-controls]
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.
asp.net - 動的に追加されたImageButtonの「クリック」イベントに関数をバインドする方法は?
私はAsp.netをまったく初めて使用します。
現在、Visual Basic でコーディングされた asp.net ページに取り組んでいます
ページには、ページが取得する SQL データに基づいて動的に生成されるこれらの画像ボタンがあります。
残念ながら、これらの各ボタンにクリック機能をバインドする方法がわかりませんでした。
[Control Name].onClick = "Function Name()" は clientSide スクリプト用です。
そして私はバインドする必要があります
動的に割り当てられたボタンに。
方法がわかりませんでした。
誰でも助けることができますか?
c# - ユーザーのポストバックに基づく動的制御
ツリービューがあり、各ツリーノードに異なるユーザーコントロールのセットのIDが含まれているとします。ユーザーがノードをクリックすると、これらのコントロールがページにロードされます。ASPページのライフサイクルを理解しているので、動的コントロールは初期化段階で追加する必要があり、ポストバックイベントは後で発生します。
したがって、コントロールを追加する必要があった後にツリービュークリックイベントが発生した場合、ユーザーのポストバックイベントに基づいてコントロールを動的に追加するにはどうすればよいですか?
編集:私はArronLSからの提案を試しました:
私が行ったことは、ノード値をセッション配列に追加し、それを使用してinitを実行し、プレースホルダーコントロールのコントロールにロードするフォーム要素を選択することでした。ツリービューのクリックイベントで、セッション配列のノードを更新し、プレースホルダーの古いフォーム要素をクリアして、新しいフォーム要素をコントロールに追加します。ページが再度読み込まれると、初期化時にノードが検出されるはずなので、ビューステートの問題は回避されます。
現在、これを完全にテストしていませんが、ビューステートで発生する可能性のある問題について説明している同様の投稿がもう1つあります。彼らは、Initコントロール内のコンテキストのRequest []部分(この場合はドロップボックス)をポーリングし、ポストバック機能の一部を手動で処理するソリューションを提案しています。
私の新しい質問は、Request配列を使用してツリービューで選択したノードにアクセスする方法です。
c# - カスタム イベント ハンドラを使用したネストされた動的コントロール
かなりの数の動的要素を含む WinForm を構築していますが、ネストされたコントロール内の親子関係に問題があると思います。私が見つけた既存の質問はすべて WebForms に限定されているようで、まったく役に立ちませんでした。
カスタムメイドのコントロールにも問題がありましたが、それは関連する問題かもしれません。
それぞれに多数の NUD が関連付けられた多数の PictureBox を表示しようとしています。最初は手作業で多くのコントロールを作成してこれを行いましたが、今ではプロセスを自動化し、コードを別の場所で再利用したいと考えています。
実際のコードはこれよりも少し複雑ですが、PseudoCode と実際のコードを組み合わせた重要な部分を次に示します。
うまくいけば、それが重要な場合に備えて、いくつかの背景があります。
いくつかの子パネルを含む非常に大きな FlowLayoutPanel があります。それらの子パネルの 1 つは、私が現在取り組んでいる領域です。(上記の panel_book と呼ばれます) そのパネルは、PictureBox とその友達を含む子パネルを動的に追加するものです。
厄介なのは、これらの MouseEnter および Click イベントがトリガーされないことです。まったく。以前、コントロールが動的ではなかったときに実行時にイベント ハンドラーを追加しましたが、これほど多くの問題はありませんでした。ネストされたコントロールでもこれを行ったと確信しています。
最後に、最後の子パネルを独自のカスタム コントロールにすることを検討しましたが、同様の問題がありました。おそらく、この問題の修正を見つけることでそれも修正されると思いますが、修正されないことがわかっている場合は、正しい方向に向けていただけますか?
ありがとう、 :)
asp.net - イベントと ParseControl の問題
ParseControl を使用してコントロール (linkbutton) を動的に追加していますが、イベント ハンドラーを指定する場合を除いて問題ありません。
私が使用する場合:
コントロールはページに正しく追加されますが、クリック イベントは発生しません。代わりに、コントロール コレクションでコントロールを見つけて、イベントを手動で接続すると、正常に動作します。Page_Init と Page_Load の両方で読み込みを試みましたが、どちらでも同じです。
何か案は?
編集:
実際には、コード内の単一のリンクボタンを解析するだけでなく、リンクボタン、チェックボックスなどを含む一連のテキストを解析しています。それが期待どおりに動作しないことに関係があるのでしょうか?
silverlight - 動的に追加されたチェックボックスの読み方は?
次のように、チェックボックスを Silverlight スタックパネル オブジェクトに動的に追加しています。
これらのコントロールを読み戻して、チェックされているコントロールを検出するにはどうすればよいですか。
c# - C# を使用した動的コントロールの Windows フォームの追加と削除
Windows フォーム フォームに 3 つのタブがあります。で選択した RadioButton に応じてTabPages[0]
、関連する TabPage にいくつかの動的コントロールを追加しました。コントロールが追加されたButton_Click
場合、問題は、動的に追加されたコントロールを他の (無関係な) TabPage から削除できないことです。
これが私のコードです:
どこでその間違いを犯していますか?
asp.net - ASP.NETコントロールIDにIDを安全に保存しますか?
ASP.NETページでフォームを自動生成しています。これはすでにテストされ、機能しています。次の場合に知りたい:
コントロールIDの一部としてデータベースIDを保存することにセキュリティ上の問題がある場合は?私は2つの問題を考えることができます:IDはページソースに表示されます(この場合はそれほど重要ではありません)、そして誰かがコントロールの名前を何らかの方法で変更する可能性はありますか?この2番目の可能性はより深刻です。これは潜在的な問題であり、それを無効にする方法はありますか?
一意のデータを任意のタイプのコントロールに関連付けるためのより好ましい方法があるとしたら?コントロールのビューステートにカスタムアイテムを保存することは可能ですか?
c# - 動的コントロールの追加
ユーザーがページのフォームで行った選択に応じて、ユーザーが回答するためのさまざまな質問のセットを表示するページを作成する必要があります。
したがって、ユーザーがページ編集のフォームから理由 A を選択すると、ページ edit_confirmation に質問 1 と 2 を表示する必要があります。ただし、理由 B を選択した場合は、質問 3 と 4 を表示する必要があります。
クエリ文字列から理由コードを取得し、switch ステートメントを設定していますが、さまざまなコントロールを出力する方法がどこにも見つかりません。質問 1 と 2 が表示される場合は、一方がテキスト ボックスで、もう一方がチェックボックスである可能性がありますが、質問 3 と 4 が表示される場合は、一方がドロップダウン リストとチェックボックスである必要があります。
編集:以下の提案のいくつかを試して、答えをマークし、それに応じて賛成票を投じるために戻ってきます。迅速な対応ありがとうございました。
EDIT EDIT:rlb.usaとAndrewVosの両方の回答が同様にうまくいきました。それを行うより「適切な」方法のように思えたので、私はAndrew'sに行きました.
asp.net - ユーザーが ASP.NET ページのクライアント側にコントロールを追加できない原因は何ですか?
これは、十分な回答だと思っていた他の質問に戻りますが、よく考えてみると、それがそうであったかどうかわかりません(申し訳ありません)。
バックグラウンダー:
フォームを動的に生成しています。データベースからコントロールを取得しています。
各コントロールを、ユーザーのセッション ID ではないデータベース ID に関連付ける必要があります。私は現在、自分のIDをWebコントロールのIDに他のものと一緒に保存して、自分がしていることを一意/明確にすることでこれを行っています。
ポストバックで、Web ページのすべてのコントロールを反復処理して、特別な識別子、つまり MyGeneratedTextBox_ID_Unique をチェックします。このプロセスにより、コントロールが私が生成したものであることを識別し、この入力フィールドの ID を取得するという 2 つの重要なステップが可能になります。
そして、これはすべて機能しますが、それでもセキュリティが心配です。この場合、実際のデータベース ID を表示してもセキュリティ上の問題は見られませんが、望ましくないことに同意します。ただし、次の可能性が懸念されます。
ユーザーが悪意のあるコントロールを私のコレクションに追加し、それを SQL インジェクション攻撃に使用できる場合。
よりアカデミックですが、ユーザーが何らかの方法でフィールドのデータを保存できる場合、ID を変更してもアクセスできません。
これは、それを行う方法の「ハック」であることに同意します。しかし、私の質問は、それはセキュリティ上のリスクであり、ハッキングの少ない方法でそれを行う「簡単な」方法はありますか?
ページで作成/インスタンス化されたコントロールのみがコントロール リストに追加されると仮定します。したがって、すべてのコントロールをサーバー側で作成する必要があるため、セキュリティの問題は解決されますが、検証したいだけです。再度、感謝します。
PS: コントロールごとにプロパティを追加し、viewstate を暗号化すると、もう少し安全になることがわかりました。
asp.net-2.0 - Page_Init 後にイベントからコントロールを動的に追加する
を維持したい場合は Page_Init の後に動的コントロールを追加するべきではないため、ばかげたタイトルのように思えるかもしれViewState
ませんが、問題を説明するより良い方法は思いつきませんでした。
次のようなクラスがあります。
CustomRender
は、執筆中の CustomForms モジュールを自己完結させるために使用する ITemplate を実装する抽象クラスです。
を保持するPage_Init
ページでWebCustomForm
、関連する ID を渡してコントロールを初期化します。次に、オーバーライドされたOnInit
メソッドで、現在アクティブなコントロールでWebCustomForm
Instantiate を呼び出します。CustomRender
問題は、私のコントロールが のコントロールCustomRender
を変更する機能を必要とすることです。しかし、CustomRender で発生するイベントが発生すると、明らかに Page_Init イベントは既に発生しています。それで、私の質問は、その中に動的に追加されたコントロールからコンテンツを変更するにはどうすればよいですか?CustomRender
WebCustomForm
WebCustomForm
私の見方では、次の 3 つのオプションがあります。
CustomRender
コントロールを独自のスタンドアロン コントロールに分離し、基本的にコントロールごとに aspx ページを持ち、ページ上でイベントを自分で処理します (ただし、ページにドロップして忘れるコントロールを作成することを望んでいました)。- イベントを使用せず、現在のページをリクエストし続けますが、異なるリクエスト パラメータを使用します
- 誰かが私に与えることができるより良い提案で、私は製図板に戻ります.