問題タブ [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.

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

asp.net - ASP.Net の CompositeControl に「Style」プロパティを作成する

新しい CompositeControl の作成に問題があります。

現在、TextBox から継承するカスタム コントロールがあります。コントロールには Style プロパティが定義されていませんが、ページのマークアップでプロパティを設定すると、スタイルが正しく適用されます。

カスタム コントロールと同じ機能を持つ CompositeControl を作成しようとしています。コントロールに Style プロパティを設定しようとするまではすべて正常に動作しますが、コンパイル時に次のエラーがスローされます。「'Style' プロパティは宣言的に設定できません。 CompositeControl のコードで「Style」プロパティを宣言しても (「new」キーワードを使用しても)、これは引き続き発生します

コントロールの 1 つでエラーが発生し、他のコントロールではエラーが発生しない理由がわかりません。

アドバイスをいただければ幸いです。

ありがとう

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

asp.net - ASP.NET 複合コントロールを作成しています。SkinID に関連付けられたプロパティを適用する方法は?

asp:Label コントロールに基づいてカスタム複合コントロールを作成しています。ラベルのデフォルトのプロパティをスキン可能にし、コントロールに追加する追加のプロパティを設定できるようにしたいと考えています。

しかし、テーマ ディレクトリの Default.skin ファイルにスキン定義を追加し、SkinId を指定してコントロールをページに追加すると、Skinned プロパティでコントロールをレンダリングする方法がわかりません。

追加のポイント:

  • 私のカスタム コントロールは、別のライブラリ/dll で定義されています。
  • テスト プロパティを 1 つ追加し、[Themeable(false)] 属性を追加しました。次に、そのプロパティを .skin ファイルに設定します。ページを表示しようとしてもエラーは発生しなかったので、.skin ファイルが適用されていないか、スキン ファイルのコントロール定義がaspx ページ。

スキンファイルから:

aspx ページから:

web.config から:

テスト プロパティをコントロールに追加し、それを [Themeable(false)] としてマークして、スキン ファイルでそのプロパティを設定するときにランタイム エラーが発生するかどうかをテストしました。エラーなし。

pages タグには styleSheetTheme 属性がないことに注意してください。ただし、StyleSheetTheme プロパティをオーバーライドする基本ページ クラスがあります。これは、他のすべてに対して機能するようです。

styleSheetTheme 属性を web.config のページ タグに追加すると、Themeable 以外のプロパティを設定しようとするとエラーが発生するなど、スキンが機能します。

違いは何ですか?ベースページクラスのプロパティコードで動作させるにはどうすればよいですか?

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

c# - WebControl と CompositeControl の違いは?

私はウェブを見回しており、トピックに関する記事をいくつか見つけましたが、それらの違いはまだわかりません. CompositeControl から継承した場合は完全に機能しますが、WebControl から継承した場合は機能しません。(どちらもコードをレンダリングしますが、CompositeControl だけがイベントを処理します)

そのため、ボタンをクリックしてコントロールが WebControl としてレンダリングされても、何も起こりません。しかし、WebControl を CompositeControl に変更すると、テキストが出力されます。なんで?WebControl と CompositeControl の違いは何ですか?

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

asp.net - 設計時エラー時の CompositeControl および XML デシリアライゼーション

コントロールをデザイン モードで Web フォームに配置した場合にのみ発生する「コントロールのレンダリング エラー」エラーが発生します。ページを実行すると、コントロールは正しく表示されます。
上記のステートメントは重要ではありません。返されたツールバー オブジェクトが null であるため、このエラーが発生します

デバッグ後、問題は CeateChildControls() から呼び出される関数にあります。

ツールバーは null を返します! (デザイン モード)
しかし、ページを実行すると、ツールバーは適切なデータを返します。

私のコードについてさらに情報が必要な場合は、お問い合わせください。

アップデート:

アセンブリで何かする必要があります。指定したファイルの代わりにファイル ストリームを使用すると、機能します。

別の更新:

コードを少し変更し、テスト目的で「データセット」を追加しました。

私が気付いたもう1つのことは、コントロールを新しいWebサイトプロジェクトに追加すると上記のすべてが発生しますが、コントロールのプロジェクトのデバッグプロパティを外部プログラムを開始するように設定すると(私はビジュアルスタジオを開始します)、そこに新しいプロジェクトを作成して追加しますすべてが機能するように制御します。

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

asp.net - エラーレンダリング制御-コンテキストLoadNetherで[A]を[B]にキャストできません

複合コントロールに取り組んでいます。これには、複数のVisual Studio IDEを開いて、ページにコントロールを追加する必要があります。

これにより、VisualStudioは複数のアセンブリを作成します。

したがって、これが発生するたびに、すべてのIDEを閉じて、ProjectAssembliesフォルダーを削除します。

これをすべて回避できますか?そのように働くのはとても難しいです...

アップデート:

具体的なエラーは次のとおりです。

未処理の例外が発生しました。[A]VerySimpleEditor.Toolbarsを[B]VerySimpleEditor.ToolBarsにキャストすることはできません。タイプAは、場所C:\ Documents and Settings \ Mark \ Local Settings \ Application Data \ Microsoft \ VisualStudio \ 9.0\のコンテキスト'LoadNether'の'VerySimpleEditor、Version = 1.0.0.0、Culture = neutral、PublicToken=null'に由来します。 ProjectAssemlies \ j-wxrc_j01\verysimpleeditor.dll。タイプBは、場所C:\ Documents and Settings \ Mark \ Local Settings \ Application Data \ Microsoft \ VisualStudio \ 9.0\のコンテキスト'LoadNether'の'VerySimpleEditor、Version = 1.0.0.0、Culture = neutral、PublicToken=null'に由来します。 ProjectAssemlies \ bkqrbe-r01\VerySimpleEditor.dll。

私がこのようにキャストしようとすると:

コントロールプロジェクト(dll)とWebサイトプロジェクトは1つのソリューションに含まれています。コントロールを再コンパイルした後、ツールボックスからWebページにコントロールをドラッグします。
コントロールを再コンパイルしてページに追加すると、このエラーが発生します。VisualStudioを再起動してコントロールを追加すると、機能します。

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

asp.net - ポストバック時に複合サーバー コントロールの子コントロールを変更する方法

ASP.NET Web フォーム複合コントロールがあります。これをコントロール A と呼びましょう。これには子複合コントロールが含まれており、これをコントロール B と呼びます。コントロール B の子コントロールは、コントロール A のプロパティに依存しています。

初期ロード時に、コントロール A の OnLoad でこのパラメータを設定しています。コントロール B が CreateChildControls で子コントロールを正しく設定すると、すべてが正常に機能します。

ただし、コントロール A のドロップダウンで SelectedIndexChanged を介してこのパラメーターを変更したい場合、イベント ハンドラーは、コントロール B のライフサイクルで処理が遅すぎて、変更された値を取得できないようです。これはおそらく、コントロール B の CreateChildControls メソッドが既に呼び出されているためです。

コントロール B を取得して子コントロールを更新し、通常のライフサイクルを経て、必要に応じてビューステートをロードできるようにするにはどうすればよいでしょうか?

わかりやすくするために、コントロール A のパラメーターが変更された場合、コントロール B の子コントロールには、一部が残り、一部が削除され、一部が追加される必要がある場合があります。ロード状態。

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

wpf - 複合コントロールのWPFTabIndex

単純な複合コントロールが埋め込まれた単純なウィンドウがあります。

(メインウィンドウ)

(複合制御)

フォームで予想どおり、4つのテキストボックスが表示されます...

  • 初め
  • 2番
  • 第3
  • 第4

しかし、「First」にフォーカスがあり、Tabキーを押すと、フォーカスが「Third」に切り替わります。WPFは、MyControlがTabIndex 3であり、テキストボックス「Third」がその中の最初のタブ付きコントロールであるツリーとしてではなく、単一のフラットリストとしてタブリストを認識しているようです。

これはWPFのバグですか、それともこれを行う別の方法がありますか?複合コントロールは多くのウィンドウで使用されており、1つのウィンドウで複数回使用することもできます。

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

asp.net - ASP CompositeControl & ScriptManager

私はWebControl / CompositeControlの世界に本当に慣れていないので、小さなテスト クラスで遊んでいます。クリックすると更新されるのは単なるLinkBut​​tonです。UpdatePanelから除外すると、うまく機能し ます。しかし、内部で実行しようとすると、まだページ全体の POST 応答が返されます。このクラスをUpdatePanel内で機能させるにはどうすればよいですか?

クラスは次のとおりです。

のコードにより、コントロールが正しく投稿されますが、 LinkBut​​tonOnInit()の更新されたテキストを取得できません。それはまだイベントを発生させています - デバッグすると、それが呼び出されているのがわかります。UpdatePanelで使用するためにこのコントロールを設定する適切な方法は何ですか?

使用法、念のため:

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

asp.net - 複合コントロール内の DropDownList は、ポストバック時に選択された値を失います

現在、TextBox と DropDownList のみを持つ複合サーバー コントロールを構築しています。これは、そのすべての胎児の栄光のコードです。

コントロールは、宣言的な値が設定されるまで、ポストバック全体で正しく機能するように見えます。たとえば、次のようになります。

この後、テキスト ボックスは引き続き正しく機能しますが、_state メンバーはポスト バックされた値を取得せず、代わりに宣言された値に固執します。Request オブジェクトで未加工の投稿された値を確認したところ、リストの UniqueID の新しい値がそこにありますが、_state はそれを取得しません。

これは明らかなことだと確信していますが、ここでは車輪を回転させているだけです。

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

c# - ASP.NET Composite-control のテキスト プロパティがテキスト変更を設定しない

セットのプロパティに依存する TextControl または RADEditor コントロールをレンダリングする複合コントロールを作成しました。両方のレンダリングされたコントロールには Text プロパティがあります。問題は、Web ページの Textvalue を (実行中に) 変更すると、新しい Text-value が設定されず、代わりに古い Textvalue が設定されることです。

私が間違っていることを知っている人はいますか?

私の複合コントロールのコードの下。

前もって感謝します

よろしく、 パトリック