問題タブ [custom-server-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# - メソッド名をasp.netのカスタムサーバーコントロールに渡す方法は?
別のコントロールを拡張するカスタマー サーバー コントロールに取り組んでいます。フォーム上の他のコントロールにアタッチしても問題ありません。
vb.netで: Parent.FindControl(TargetControlName)
ASPX マークアップでコントロールにメソッドを渡したいと思います。
例えば:<c:MyCustomerControl runat=server InitializeStuffCallback="InitializeStuff">
そこで、リフレクションを使用して、親から指定されたメソッド名にアクセスしようとしました。
(VBで)のようなもの
メソッドはページの一部ではないため、見つかりません。どこを見ればいいですか?他のコントロールが同様の動作をするのを見たことがあるので、これが可能であると確信しています。
言い忘れましたが、私の回避策は、制御イベントを提供し、コード ビハインドでそれらにアタッチすることです。
asp.net - UserControl レンダリング: 現在のページへのリンクを書き込みますか?
カスタム コントロールを実装しています。このコントロールでは、現在のページへのリンクを多数作成する必要があります。それぞれに異なるクエリ パラメータを指定します。既存のクエリ文字列をそのまま維持し、追加のクエリ項目 (「ページ」など) を追加 (または値を変更) する必要があります。
等
Render メソッドで使用できる単純なヘルパー メソッドはありますか...うーん...次のように:
これにより、正しい URL が生成され、既存のクエリ文字列項目が維持され、重複が作成されなくなります。ページ=1&ページ=2&ページ=3?
自分自身を巻き上げるのは、魅力のない仕事のように思えます。
asp.net - ASP.NET カスタム コントロールと「動的」イベント モデル
OK、タイトルが完全に正確かどうかはわかりませんが、提案をお待ちしています!
ASP.NET カスタム コントロールを作成中です。これはまだ比較的新しいものなので、ご容赦ください。
イベントモデルを考えています。Web コントロールを使用していないため、ボタンから発生するイベントはなく、適切な引数を使用して手動で__doPostBackを呼び出しています。ただし、これは明らかに、オプションを選択するときに多くのポストバックが発生することを意味します (選択すると異なるレンダリングが行われます)。
やがて、これをより Ajax らしく、レスポンシブにする必要があるため、ローカル Javascript を呼び出すようにイベント バインディングを変更する必要があります。
したがって、コントロールの「モード」を切り替えることができるはずだと考えていました。ポストバックとハンドル自体を使用するか、doPostBack の代わりに呼び出す Javascript 関数名を指定できます。
- これについてどう思いますか?
- コントロールからのイベントの発生に間違った方法でアプローチしていますか? (ここで提案を完全に受け入れます!)
- 同様の問題にどのようにアプローチしますか?
編集 - 明確にする
- カスタム レンダリング コントロールを作成しています (つまり、WebControl から継承します)。
- レンダリングされた出力を完全に制御したいので、既存の Web コントロールは使用していません。
- 私の知る限り、カスタム レンダリング コントロールからサーバー側イベントを発生させる唯一の方法は、レンダリングされた要素から doPostBack を呼び出すことです (間違っている場合は修正してください!)。
- ASP.NET MVC はオプションではありません。
asp.net - ASP.NETカスタムコントロールのスタイリング
私はいくつかのASP.NETカスタムコントロールの作業を開始しているところです。コントロールにスタイリングをどのように適用するかについて、あなたの男/女の考えについていくつかの意見を得ることができるかどうか疑問に思いました。
私はむしろCSSをプッシュしたいので、過去に行ったいくつかのコントロールでは、文字列を入力できるようにする文字列プロパティを固定しました。文字列を入力すると、レンダリング時に「スタイル」属性でスローされます。「CSSClass」プロパティを使用して「class」属性を適用することもできます。
「適切な」 Styleプロパティ(実際にスタイルオブジェクトを保存し、デザイナーを使用してその値を指定する)を作成する方法についてはあまり行っていません。これは私には大変な作業のように思えます。TBH、私はスタイルエディタのUIが嫌いで、適用するCSS/クラス名を入力したいと思います。
これについてどう思いますか?
注:これは一種の主観的なものです-明確にするために:
受け入れられる答えは次のとおりです。
- さまざまなアプローチの長所と短所を提供します。
- 意見は大歓迎ですが、良い答えは建設的なものでなければなりません。
- いくつかの実際の知識/経験でそれをバックアップします。
主観には何の問題もありません。人々が主観的で考えていない、建設的である、または実際に何らかの洞察と経験を提供しているという問題があります。
>>これを「主観的」としてタグ付けしないでください<<タグ付けは時間の無駄です。「主観的」とは、人々が求めるテクノロジーやカテゴリーではありません。質問を一掃するのではなく、修正してください。
asp.net - ASP.NET カスタム コントロール - PostBack の代替?
カスタム ASP.NET コントロール開発の深みへの旅で、ASP.NET PostBack モデルと、それがコントロール開発にどのように影響するかについて明らかに頭を悩ませています。
ASP.NET ではコントロールに「有効期間」がないため、ページを読み込むたびに再初期化する必要があることを理解しています。オブジェクトの値/パラメーターを ViewState に永続化することで、これを克服します。
したがって、私が読んだ多くの記事では、ページにかなりのオーバーヘッドが追加される可能性があるため、PostBack を使用しないことをお勧めします。無効にする方法を探しているわけではありません。
私が探しているのは:
PostBack モデルを使用してコントロールを初期化する代わりに、どのような方法が必要ですか?
QueryString を使用できることはわかっていますが、これは非常に面倒で、明らかに信頼性が低いようです。
理想的には、別のアプローチのアーキテクチャ/設計の概要と、その長所/短所を教えてください..
どうもありがとう^_^
asp.net - CalendarExtender を Textbox サブクラス サーバー コントロールに動的に追加しますか?
TextBox から継承するサーバー コントロールを作成しようとしています。このコントロールには、CalendarExtenderが自動的にアタッチされます。これを行うことは可能ですか、それとも私の新しいコントロールは代わりに CompositeControl から継承する必要がありますか? 私は前者を試しましたが、コントロール ライフサイクルのどの部分で CalendarExtender の新しいインスタンスを作成する必要があるか、どのコントロール コレクションに追加する必要があるかが明確ではありません。それを Page または Form のコントロール コレクションに追加できないようです。(TextBox) コントロールのコレクションに追加すると、ポップアップ カレンダー機能がまったく利用できなくなります。
c# - カスタム ユーザー コントロールの ASP ネストされたタグ
C# でカスタム ユーザー コントロールを使い始めたばかりで、ネストされたタグを受け入れるものを作成する方法の例があるかどうか疑問に思っていますか?
たとえば、 を作成するときasp:repeater
に、 のネストされたタグを追加できますitemtemplate
。
asp.net - コレクション プロパティを使用して ASP.NET カスタム コントロールを作成するにはどうすればよいですか?
私は何かに似たものを探しています
これをやってのけるために必要な最低限のコードは何ですか?
リックの例は、次のようなものを示しています
可能であれば、より簡潔な構文を好むでしょう。
注: より良いタイトルや説明を提案してください。編集権限がなくても、コミュニティのためにエントリを編集していただけると幸いです。
asp.net - ASP.NET のカスタム コンポジットでの子コントロールの初期化
私が取り組んでいる一連のコントロールの一部には、明らかに、それらのいくつかをまとめてコンポジットにすることが含まれます。これには考慮が必要であることを急速に学び始めています(これは私にとってまったく新しいことです!):)
私は基本的にStyledWindow
コントロールを持っています。これは本質的に、Panel
他のビットを実行する能力を備えたものです(境界線の追加など)。
その中で子コントロールをインスタンス化するコードを次に示します。この時点まで、平凡な静的コントロールで正しく動作しているように見えます:
今日、より複雑なコントロールを入れ子にしようとしたときに問題が発生しました。このコントロールは、ページへの参照を使用します。これは、JavaScript を挿入して、もう少し機敏で反応が良いようにするためです (RegisterClientScriptBlock
これが、ページ参照が必要な唯一の理由です)。
現在、これは「オブジェクト null」エラーを引き起こしていましたが、これを render メソッドにローカライズしました。もちろん、[null]Page
オブジェクトに対してメソッドを呼び出そうとしていました。
私を混乱させているのは、コントロールがスタンドアロンとして正常に機能することですが、それを配置するStyledWindow
とすべてがひどくうまくいかないことです!
StyledWindow
そのため、またはのいずれかに何かが欠けているようですChildControl
。何か案は?
アップデート
Brad Wilsonが正しく指摘したように、コントロールがコレクションに追加されていませんControls
。これが_panel
目的であり、これは私のためにそれを処理するためにあり、基本的にオーバーライドしますControls
(これはどこかのガイドから取得しました):
それが物事を明確にするのに役立つことを願っています。申し訳ありません。
Longhorn213 の回答に続く更新
そうですね、コントロールをいじって、1 つをコンポジット内に、もう 1 つを外側に配置しました。次に、コントロール ライフサイクルのイベント メジャー イベントで Page のステータスを取得し、ページにレンダリングしました。
スタンドアロンは正常に動作しており、ページは期待どおりに初期化されています。ただし、コンポジットにネストされているものは異なります。OnLoad
イベントはまったく発生していません!したがって、コントロール階層を正しく設定していないという点でブラッドはおそらく正しいと思います。不足しているものについて誰かアドバイスをいただけますか? Panel メソッドだけでは十分ではありませんか? (まあ、明らかにそうじゃない?!) :D
助けてくれてありがとう、ありがとう:)
c# - ツールボックスでカスタム コントロールを分類する方法はありますか?
クラス ライブラリに多数の asp.net サーバー コントロールを作成しました。チームの他のメンバーが私の dll を参照するときに、それらを特定の方法でグループ化したいと考えています。それは可能ですか?どのように?