問題タブ [asp.net-customcontrol]
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# - カスタム コントロール: ページ読み込み時にコントロールが非表示になっているとスクリプトが読み込まれない
jquery プラグインに完全に依存するカスタム コントロールがあります。すべてが想定どおりに正常に機能していますが、コントロールが Visible = false に設定されているか、その親のいずれかが Visible でない場合に問題が発生します。理想的には、asp.net コントロールが Visible false に設定されている場合、エンジンはそれをレンダリングしないため、ページの読み込み時にコントロールがレンダリングされません。また、コントロールがレンダリングされない場合、JavaScript リソースがロードされないため、コントロールがポストバックに表示されたときに jquery プラグインがバインドされません。これは非常に基本的な問題であり、それを使用することになっている開発者は、コントロールが完全に機能していると仮定して、コントロールをページにドラッグ アンド ドロップするだけです。私はそれを回避する必要があると思います。以下に貼り付けたのは、リソースをロードする方法です。
コードの最後の 3 行目では、正しく読み込まれた画像 URL を使用して関数を呼び出しています。しかし、何らかの理由で、javascript ファイルがロードされず、ロードされたリソース リストにブラウザが表示されません。
問題の解決策はありますか、それとも私が間違っていることはありますか? 私は今、この問題について本当に無力であり、助けていただければ幸いです。
c# - Asp.net カスタム テーブル セル ClientID が設定されていません
WebControls.TableCell から派生したクラスがあります。Text プロパティが設定されたら、asp:Panels と asp:LiteralControls をセルに動的に追加するメソッドを呼び出します。これらのコントロールを Javascript で参照したいので、当然 JS 関数でパネルの ClientId を使用してみました。ただし、これらのコントロールには ClientId が設定されていません (文字列は空です)。どうしてこれなの?ClientIds を強制的に設定するにはどうすればよいですか?
一時的な解決策として、ClientIDMode を "static" に設定し、ID を独自に作成しましたが、JS でそれらの ID を参照するのが難しいため、これでは満足できません。なんで?たとえば、「12345」を 1 つのコントロールに割り当てると、クライアント側で「MainContent_123456」のように変更されます。「MainContent」部分が修正されていないため、これは悪いことです。したがって、クライアント側の実際の ID がどうなるかはわかりません。現在、jQuery を使用してコントロールを取得できますが$ctrl = $('[id$='12345']');
、ID に「123456」が含まれるコントロールを取得するため、これはダーティです。
それでは、元の質問に戻ります。カスタム TableCells のパネルに ClientIds を自動的に設定するにはどうすればよいですか?
編集:コードが追加されました
コントロールをカスタム TableCell に追加するメソッドのコード:
そしてJSコード:
}
c# - カスタム コントロール内のネストされたマークアップ
あらゆる場所で使用するテーブルを実装するためのカスタム コントロールを作成しました。しばらくの間正常に動作していましたが、有効な asp.net マークアップを入れることができる新しい列タイプを追加するように求められ、そのマークアップはそのテーブル列内でレンダリングされます。
次のクラスを作成しました。
列のこのマークアップ:
問題は、コレクションをヒットCreateCell
すると常に空になることです。_innerMarkup
を使用したサンプルをいくつか見ましたControlsCollection
が、問題は がGridColumnBase
から継承されずControl
、継承する が作成されるTableCell
ことです。
編集:私もPlaceHolder
コントロールを追加してそれを使用しようとしましControlsCollection
たが、それも空です。
asp.net - ASP.NET UpdatePanel CustomControl と PopupControlExtender の奇妙な問題
UpdatePanels、PopupControlExtenders、およびカスタム コントロールを使用して、チェックボックスのドロップダウン リストを作成しようとしています。方法が見つからないように見える1つの奇妙な不具合を除いて、ほとんどの場合機能します。
グリッチを再現するには、次のアクションを以下の順序で実行する必要があります。
- ドロップダウンを Role2 に設定する
- B ドロップダウンを Role2 に設定
- すべてのA権限を反転(チェック項目のチェックを外し、チェックを外した項目にチェックを入れる)
- B ドロップダウンを Role1 に設定
- View A Authorities (手順 3 でチェックを外した項目が再度チェックされます)
なんらかの理由で、手順 3 で機関のチェックを外しても効果はありませんが、チェックすると効果がありますか? Request.Params から正しい値を取得することを検討しましたが、それが私が望むものを与えているようには見えません。不具合は、手順 2 と 3 を入れ替えてこの順序で手順を実行した場合にのみ発生し、正常に動作します。
c# - コレクション エディターは、VS 2013 のデザイン ビューでカスタム Web コントロール マークアップのエントリを保持していませんか?
というコレクション プロパティを持つ ASP.Net WebForms 用の単純なカスタム Web コントロールを開発しようとしていますSubscriptions
。
コントロール プロジェクトを正常にコンパイルし、ツールボックスから aspx ページに問題なく追加できます。
Subscriptions
問題は、Visual Studio 2013 のデザイン ビューでコレクション エディターを使用してプロパティのエントリを追加するときです。
複数のサブスクリプションを入力できますが、コレクション エディターの [OK] ボタンをクリックしてからデザイン ビューの [サブスクリプション] プロパティに戻ると、少し前にいくつかのエントリを入力したにもかかわらず、空になっています。
aspx のカスタム コントロールのマークアップ
質問: コレクションがデザイン ビューのコントロールのマークアップに表示されない原因となっているコードの誤りは何ですか?
カスタム Web コントロール コード
asp.net-mvc-5 - ASP.NET MVC 5 - カスタム HTML コントロール
カスタム HTML コントロールまたはフォーム コントロールを作成したいと考えています。チュートリアルが見つかりません。新しいコントロールを作成するか、既存のフォーム コントロールをオーバーライドしたいと考えています。たとえば、ボタンをオーバーライドしてアイコンをボタンに追加します。
ありがとう