問題タブ [composite-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# - 抽象コントロールに基づく複合コントロールのオーバーライドの正しい順序
ダイアログボックスを表示するためのC#複合Webサーバーコントロールのセットを作成しています。
基本的なレイアウトやコントロールのタイトルなどを処理する1つの抽象クラスが必要です。次に、特定のポイントで子コントロールをレンダリングする一連の派生クラスが必要です。
CompositeControlのライフサイクルと、いつどのメソッドを使用するかがわからない場合を除いて、派生クラスによって実行される抽象クラスによって処理されるメソッドrenderOpeningHtml
と、抽象クラスによって処理されるメソッドの3つの異なるメソッドを予測します。renderCustomControls
renderClosingHtml
c# - CompositeControl での viewstate に基づくコレクションの永続化
長い一日だったかもしれませんが、CompositeControl で ASP.NET ViewState に基づくコレクションを永続化するのに問題があります。簡略版は次のとおりです。
ボタンがクリックされると、イベント ハンドラ btn_Click は正常に実行されますが、MyObjectCollection のセッターは呼び出されないため、new MyObject() は永続化されません。
私はちょうど金髪の瞬間を過ごしていると思います。手伝ってくれる人いますか?
asp.net - DropDownLIst を使用して複合コントロールにリスト アイテムを提供する機能を追加する
DropDownList (Label も含む) の複合コントロールを作成しています。
コントロールをドロップダウン リストのように使用できるだけでなく、DDL の前のページにラベルを投げることもできます。
私はこれを TextBoxes に対して完全に機能させていますが、コレクション (またはデータソース) コンポーネントが DDL を設定するため、DDL に苦労しています。
基本的には、次のようなことができるようになりたいです。
問題は、コントロールの DropDownList クラスを拡張していないことです。そのため、その魔法を単純に操作することはできません。現在はただのコントロール(MyDropDownList)を、タグ内のリスト項目を受け入れるものに変える方法を理解するために、いくつかのポインターが必要です。System.Web.UI.UserControl
理想的には、それをデータソースにプラグインできるようにしたいと思います(通常の DDL が提供するのと同じ機能)。
通常の DDL を拡張するだけでうまくいきませんでしたが、Label
コンポーネントを飛ばすことができませんでした。
jquery - jquery を複合コントロールに追加する
テキストボックスがあり、jquery プラグインを使用して透かしを追加する複合コントロールを作成しています。このような基本的な機能があるとしましょう
上記を挿入するために何をする必要があるかを誰かが提案できますか?
ティア!
asp.net - CompositeControl 内の DropDownList は、選択した項目を記憶する必要がありますか?
以下を考えると
リスト内のアイテムは適切に保持されていることがわかりましたが、別のコントロールがレンダリングされてからこのコントロールが再度レンダリングされると、最後に選択されたアイテムが保持されません。(代わりに、リストの最初の項目が常に選択されます)
最後に選択したアイテムを ViewState に自動的に保持する必要がありますか?それとも期待しすぎているのでしょうか?
c# - Asp 複合コントロールの子コントロール (ラジオボタン) がチェック値を失う
動的に作成された質問とオプションを使用して、asp.net でクイズ コントロールに取り組んでいます。メイン コントロールは基本的に、すべての質問を保持するコンテナです。デザイン ビューでは、ユーザーはカスタム コレクション エディターを使用して質問を追加できます。コレクション エディター リストに質問を追加するたびに、質問タグが生成されます。各質問オブジェクト内には、ラジオボタン コントロールを継承するラベルと多数のオプション オブジェクトがあります。これらの各 Option オブジェクトは、ユーザーが各質問に対して選択できるオプションを順番に表します。
これはすべて機能しますが、各ラジオボタンのチェック済みの値を読み取れるようにしたい部分にいることを除いて。このクイズをページ内に実装して質問を確認したい場合、このページにボタンを配置し、コントロール内にある次の関数を呼び出します。
$
ただし、ラジオボタンを選択して送信ボタンをクリックすると、すべてのオプションで Checked 値が常に false になります。基本的に、ポストバック後にチェックされた値が失われ、解決しようとして立ち往生しています。誰かが私を正しい方向に向けることができれば幸いです。
c# - 複合コントロールでビューステートを読み込めませんでした
「Type」と呼ばれるプロパティの 1 つの値に基づいてコントロールを変更する複合コントロールを作成しました。この「Type」プロパティが設定されると、コントロールの存続期間中は再度変更されないため、「Type」プロパティの値の結果としてレンダリングされるコントロールは変更されません。
多くのインターネット投稿で推奨されているように、LoadViewState メソッドと SaveViewState メソッドをオーバーライドしましたが、「ViewState の読み込みに失敗しました」というエラーが引き続き表示されます。コントロールは最初の読み込みで適切にレンダリングされますが、ポストバックが行われると、「ViewState の読み込みに失敗しました」というエラーが生成されます。
複合コントロールのコードの一部を次に示します。
カスタム コントロールを作成する「パーサー」ファイルのコードは次のとおりです。
コントロールをテストするために使用している aspx ページのコードは次のとおりです。
コードビハインド:
コントロールを if (!Page.IsPostBack) に入れることだけを試みましたが、ポストバックにコントロールをまったく表示しません。私は何を間違っていますか?
更新:だから私はこれを複合コントロールに追加しました:
そして、「ビューステートの読み込みに失敗しました」というエラーは表示されなくなりましたが、子コントロールのビューステートがポストバック間で保存されていないようです。私の複合コントロールのコントロールの 1 つは、ページングが有効になっているグリッドビューで、次のページをクリックすると 2 ページに移動しますが、3 ページや 4 ページには移動しません。でも「最後のページ」「最初のページ」には問題なく行きます。ただし、次のページと前のページは正しく機能しませんが、エラーも発生しません。アイデア?
c# - ビューステート複合コントロールの読み込みに失敗しました
実行時のプロパティの 1 つの値に基づいて、子コントロールの異なるセットを含む複合コントロールがあります。ポストバックがあるたびに、次のエラーが発生します。
私はこの問題をグーグルで検索し、子コントロールのインスタンス化の順序を繰り返し変更しましたが、成功しませんでした。ここで私が間違っていることを誰かに教えてもらえますか? 複合コントロール内のコントロールは、それ自体でエラーなく正しく機能します。
複合コントロールは次のとおりです。
asp.net - ビューステートを使用せずに複合コントロールのポストバック間で値を保存する方法
キャッシュ内の値を参照するいくつかのプライベートフィールドを持つ複合コントロールがあり、これらのプライベートフィールドはコンストラクターメソッド中に呼び出されます。文字列キーはキャッシュ内の値を識別するために使用されるため、コントロールがインスタンス化されたときに使用できるようにその文字列キーを保存する方法が必要であり、それを参照できる必要があります。変更せずにポストバック。
また、このキーはコントロールが最初にロードされたときに生成されますが、それ以降は再度変更しないでください。
どうすればこれを達成できますか?
すでにビューステートに保存しようとしましたが、コントロールがインスタンス化された時点ではビューステートがまだ使用できないため、機能しません。
プライベートフィールドを使用して、コンストラクターでPage.IsPostbackをチェックしようとしましたが、ポストバックでない場合はプライベートフィールドに値を割り当てますが、その後のポストバックでは値が失われ、再割り当てできません。これは自動生成されたGUIDであるため、Page.IsPostBackに再度表示されます。
これは、人々が以前にやらなければならなかったことでなければなりません。
c# - asp.net c#で子を削除せずに親コントロールを削除するには?
コンテナーから子コントロールを削除せずに、親コントロール (この場合はスパン) を削除したいと考えています。どうすればasp.net c#でこれを達成できますか?
ここでコードを見ることができます:http://pastebin.com/9NiriWXN
注: 「newsright」コントロールを簡単に見つけて、その親 (この場合はスパン) を返すことができます。