問題タブ [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.
c# - さて、正確にどこにダイナミックコントロールを作成する必要がありますか
私はダイナミックコントロールに関する2つの質問に積極的に取り組んでいます。答えはほとんどの場合、ポストバックでの再作成に関するものです。質問は、これの正しい場所はどこですか。
ここに2つのSOの質問があります
CreateChildControlsをオーバーライドすることで、常に動的コントロールの作成を行います
リフレクターの多くのコントロール、主にtelerikコントロールを調べて、これは正しいといつも思っていましたが、多くの人がInitで作成する必要があると言っています。
CreateChildControlsを引き続き使用する必要がありますか、それともInitが正しい方法である必要があります...なぜこれがこのような混乱の領域に見えるのですか。
wpf - FindName() による動的に生成された Wcf コントロールの検索
親コントロール内のコントロールを検索する FramworkElement.FindName() メソッドは、単純なように思えます...
しかし、私はアンティを上げています.フレームワークは私がやろうとしていることを気に入っていないようです.
まず、さまざまな方法があることを認識しています。これは、私が WPF で作成する最初のフォームであることを覚えておいてください。
コレクション内のアイテムの数に基づいて、コントロールを StackPanel にロードしています。[ユーザーが入力した URL] 内のディレクトリの数によってコレクションが決定されるため、このメソッドは必須です。
このリストは、設計中にフォームに配置される垂直スタックパネルに水平スタックパネルを構築します。
したがって、dirStackPanel はフォーム上にあります。controlStackPanel を dirStackPanel に n 回挿入し、それぞれに識別名 (string)("controlStackPanel" + n) を付けます。
controlStackPanel にもコントロールを入力していますが、その親 (dirStackPanel) から名前で controlstackPanel を取得できないことを考えると、これは論点です。
例:
var getPanel = (StackPanel) this.dirStackPanel.FindName((string)("controlStackPanel" + n))
Null を返します
明確にするために、AT RUN TIME に挿入する各コントロールには名前が割り当てられており、ループを使用して簡単に取得できます。ただし、FindName メソッドは、親 "StackPanel" の最初の子コントロールでは機能しません。オブジェクトではなくnullを返し続けます。
何か案は?
asp.net - VBでasp.net 3.5で動的に作成されたコントロールを参照する方法
コントロールを Web フォームに動的に挿入するプログラムを作成しています。変数に応じて、テキスト ボックス、ラジオ ボタンのセット、またはチェックボックスのセットのいずれかを追加します。後で、ユーザーが送信ボタンをクリックした後、ユーザーが正しい回答を送信しているかどうかを判断するためにコントロールを使用する必要がありますが、コントロールの ID を参照しようとすると、「txtAnser が宣言されていません。アクセスできない可能性があります」というメッセージが表示されます。保護レベルのためです。
.aspx ページは次のとおりです (マスター ページの標準コンテンツ ページです)。
ここにコード ビハインドがあります。select case ステートメントで txtAnswer コントロールを参照しようとすると、送信ボタンのクリック イベントで問題が発生します。
誰かが私がしなければならないことを指摘できれば、私はそれを感謝します.
ありがとう、サイモン
asp.net - 動的に作成されたコントロールに対するASP.NET/C#の混乱
デフォルトのASP.NETWebアプリケーションテンプレートを試してみましたが、次のコードで例外がスローされます。
オブジェクト参照がオブジェクト インスタンスに設定されていません。
作成したボタンをクリックしたとき。
誰かが技術的な説明を提供できますか?
注1:マークアップは、プレースホルダーが含まれる空白のページです。以下を参照してください。
注2:を置き換えるButton
とLinkButton
、コードは例外をスローせずに機能します。
マークアップ:
c# - コントロールを動的に作成し、ポストバック全体でコントロール値を保存します-ASP.Net C#
このことを考慮 -
エンドユーザーが詳細を取得することで、ASP.Netページにタブコントロールを動的に作成できるようにします。追加されたすべてのタブについて、いくつかの設定を取得します-
- タブタイトル
- タブコンテンツ
- タブフッターリンク
したがって、タブごとにこれらの詳細を取得します。ユーザーには、もう1つのタブに[タブを追加]ボタンが表示されます。したがって、タブ設定を取得するには、ページにもう1つのタブ設定パネルを追加する必要があります。ただし、そうすると、以前に作成した動的タブ設定パネルに入力した値が失われます。ユーザーは、タブをいくつでも追加して、タブごとに設定を入力できます。最後に、彼らがそれを保存するとき、私は(彼らの設定と内容に基づいて)タブコントロールを構築し、コントロールをレンダリングします。
コントロールは動的なので、2つのオプションがあります-
- n番目のタブを追加しながら、以前に作成したn-1タブ設定パネルを再作成します。したがって、すべてのポストバックで、すべてのタブの設定パネルを再作成する必要があります。しかし、この場合の値を永続化する方法がわかりません。
- 単純なhtmlコントロールを使用してクライアント側に設定パネルを追加し、ページのUnLoadでコントロールを解析します->設定を解析します->非表示フィールドに保存します->サーバー側で取得します。この場合、コントロールの検証スクリプトを作成する必要があるサーバー側の機能がすべて失われます。
これを行うためのより良い洞察はありますか?
asp.net - 動的コントロールの例。PreRender 後にスクリプト コントロールが登録されない場合がある
動的 ajax コントロールを作成すると、ポストバックでレンダリング前の問題が発生する場合があります。ポストバックでコントロールを再作成することになっていますが、コントロールが非常に多い場合、ポストバックごとにパフォーマンスが非常に遅くなります。つまり、コンボボックスをクリックすると、数秒かかる場合があります。そこで、コントロールをパネルにグループ化し、パネルをコレクションに保存してから、ポストバックでパネルを再呼び出ししました。パネル内のコントロールが標準の html コントロール (テキストボックス、ドロップダウンリストなど) である場合、これは実際にうまく機能します。しかし... ajaxコントロールではうまく機能しません...まだ.
以下にサンプルを含めました。コードをコメント解除/コメントしてテストします。誰かが ajax コントロールでこれを機能させる方法を知っているなら、それは素晴らしいことです。
c# - ASP.Netで動的にレンダリングされた場合のCheckBoxListItemsとTableRowsの違いは何ですか?
ASP.NetWebサイトのページの機能を少し変更する作業をしています。元のページには、項目がハードコーディングされていないチェックボックスリストがページに書き込まれていました。
代わりに、最初のレンダリングで、cblはクエリの結果にデータバインドされます。
ポストバックで次のコード:
チェックボックスリストの動的データバインドリスト項目を調べて、チェックされた値を取得します。同じことを試みました。ページに空のテーブルを配置してから、動的に行を作成しました。
唯一の問題は、イテレータがテーブルに到達すると、ハードコードされたヘッダー行のみを読み取ることです。(ただし、テーブルは元のページのすべての正しい属性で美しくレンダリングされます。)
テーブルの行を読み取ろうとするコードは次のとおりです。
デバッグラベルチェックで、行が1つだけで、ハードコードされたヘッダー行であることがわかります。したがって、ページは他の行を読み取るときにそれらが存在するとは信じていないように見えるため、基本的に他の行を読み取りません。
では、なぜそれがテーブルで機能しないのですか?または、レンダリングやライフサイクルなど、ポストバックの動的コントロールでは機能しないという通常の理由でテーブルで機能しない場合、チェックボックスリストで機能するのはなぜですか?
c# - 動的制御を永続化する方法(c#)
タイトルに従って、カスタムコントロールを作成しました。
特定のボタンクリックイベントで、このコントロールがインスタンス化され、ページに追加されます。
これは動的なコントロールであり、独自のボタンイベントがあります。
これらのボタンイベントをトリガーするには、後続のpage_load / onloadライフサイクルステージで、Page_Load
/の終わりまでにコントロールを描画する必要があります。OnLoad
私の問題は、このコントロールをどのように永続化するかです。Session
シリアル化できないアイテムが含まれているため、オブジェクトに保存できません。
c# - TextBoxes を Repeater に動的に挿入し、その値を取得します
編集可能な要素と読み取り専用の要素が混在する、SQL からバインドされた Repeater があります。行の「編集」ボタンをクリックすると、編集可能な部分がテキストボックスに変換され、「更新」をクリックすると変更が保存されます。
以下は、[編集] ボタンと [更新] ボタンの OnClick コードの (非常に) 簡略化されたバージョンです。
問題は、動的に追加された TextBoxes が、ページがポストバックされたときにそこにないことです。デバッガーで調べPlaceHolder1.Controls
ましたが、TextBoxes はありません。PlaceHolder1
それ自体は Repeater の中にありますが、PostBack で Repeater を再バインドしていません。
TextBox コントロールの代わりに未加工の HTML を使用し、値を Request.Form から引き出すことを検討しましたが、それはハックのように感じます。動的に追加された TextBoxes をポストバック間で永続化するにはどうすればよいですか?
編集:
ここには、大量のサンプル コードがないと示すのが難しい複雑な問題がいくつかあります。ここに大きなものがあります:
- リピーターの各セルには、読み取り専用テキストと編集可能テキストを混在させることができます (つまり、動的に挿入されるラベルとテキスト ボックス)。
- 各セルに編集可能な領域がいくつあるかわかりません。元のテキストは のよう
blah blah @A1@ blah blah @A2@ blah...
になり、@A1@、@A2@ などの代わりに置換テキストを挿入する必要があります。編集モードでは、その置換テキストのみが編集可能です。