問題タブ [webusercontrol]
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 c# - App_Code クラス内から WebUserControl のインスタンスをインスタンス化するにはどうすればよいですか?
アロハ、
クラス内からインスタンス化してページに追加する必要があるカスタム コントロールがあります。私のクラスには渡す関数があるPage
ため、ページ上のコントロールにアクセスできます。このメソッドを使用して、標準の ASP コントロールを既に追加しており、すべてが期待どおりに機能しています。私の問題は、カスタム コントロールの型が定義されていることです。
hereを読んで.csをコントロールからApp_Codeフォルダーに移動しましたが、そうすると、ascxのコントロールが有効であると見なされないため、コンパイルされません。たとえば、私は得るCS0103: The name 'litTest' does not exist in the current context
。これらは部分クラスであるため、App_Code フォルダーに新しい空の部分クラスを作成し、コントロールの .cs ファイルはそのままにしました。
このようにコンパイルされますが、コントロールを Page.controls コレクションに追加すると、ページ上の本来あるべき場所に何も表示されません。たとえばTEST
、ascx ファイルの末尾に追加しましたが、ページには表示されません。さらに、コントロールには、空の部分クラスを使用するときにアクセスできない変数を設定する必要があります。
私がやろうとしていることが標準コントロールで機能することはわかっていますが、カスタム コントロールでこれを機能させることができないのはなぜですか?
App_Code フォルダー内の私の部分クラス:
ユーザーコントロールの私の部分クラス:
私のユーザーコントロール ascx:
私の App_Code クラス:
ページ出力には、TEST という単語がまったくありません。HELLO という単語が問題なく表示されます。私はMyClass.doWork()
ページとコールバックからLoad
呼び出してみましたが、すべてがダメになりましたInit
。PreInit
アップデート:
Minh Nguyenが示唆したように、コントロールをロードするために使用できますがCtrl.LoadControl("~/Controls/CustomControlClass.ascx");
、それを独自のタイプとしてキャストすることはできません。コントロールタイプとして割り当てる必要があります。
これを行うと、コントロールをページに追加して、期待どおりに動作させることができます。欠点は、どのコントロール プロパティにもアクセスできないことです。これを解決するために、私はこれをやっています:
これは機能しますが、使用するのにどれくらいの費用がかかるかわかりません。コントロールをキャストできたらいいのにと思いますが、試してみるとエラーが発生します。
他のオプションがあるかどうかを確認するために、これには少し答えないままにしておきます。
c# - WebUserControlの問題を伴うC#ASP.NET GetType()
プロジェクトには、フォーム要素用のカスタムWebUserControlがいくつかあります(これらは、いくつかの標準バリデーターやその他のシステム固有の関数をカプセル化します)。私のユーザーコントロールは「DropDownListField」と「TextBoxField」です。ページの後ろのコードには、次のコードがあります。
何らかの理由で、コードをステップ実行して「control」にWebユーザーコントロールが割り当てられていることを確認しても、「if」ステートメントは常にfalseを返します。このコードは、プロジェクト内の別の場所にありますが、他の場所では標準の.netコントロール「TextBox」と「DropDownList」が使用され、他の場所ではコードが機能します。
これがWebユーザーコントロールで機能しない理由を誰かが知っていますか?
更新:うーん、デバッグで私はこれを見つけました:
したがって、typeofは、それらが完全なタイプではなく、ユーザーコントロールであることを認識しているだけです。
特定のユーザーコントロールタイプを確認する方法を知っている人はいますか?
c# - Winformsのように、デフォルトページのパネルにWebUserControl.ascxをロードすることは可能ですか?
私はデフォルトのページ、すなわちdefault.aspxを持っています。これにはパネルがあります。そして、他に2つのフォーム、つまりWebusercontrol1.ascxとWebusercontrol2.ascxがあります。いくつかのコントロールを使用してページを設計します。これで、WINFORMSで行ったように、デフォルトページにあったパネルにこのページをロードできます。
jquery - ユーザー コントロールの作成
このコードは、通常のページ (Default.aspx など) 内で使用すると問題なく動作します。これを UserControl で使用したいと考えています。
これどうやってするの?
asp.net - vb.netを使用して単一のチェックボックスを使用してすべてのチェックボックスをチェック/チェック解除する方法は?
asp.net webusercontrolに11個のasp.netチェックボックスがあります..
チェックボックス1がチェックされている場合、残りのすべてのチェックボックスがチェックされ、チェックボックスがチェックされていない場合、残りのすべてのチェックボックスがチェックされません。すべてのチェックボックスがwebusercontrol panel1内にある場合の方法。
c# - リピーターの UserControl - リピーター OnItemDataBound の前に呼び出される子 DataBind()
ユーザー コントロール (A) 内に含まれているリピーター (R) 内のユーザー コントロール (B) をデータバインドしようとしています。
ページ呼び出し A.DataBind A.OnInit はメソッドを R.OnItemDataBound にアタッチします A.DataBind は R.DataSource を設定し、R.DataBind を呼び出します B.DataBind は R.OnItemDataBound が起動する前に呼び出されます。
これは問題です。B.DataSourceProperties を設定し、R.OnItemDataBound の添付メソッドから B.DataBind を呼び出しているためです。(私がリピーターをネストするたびにそうするように)
c# - C#asp.netButton_Clickイベントハンドラーが機能しない
いくつかのラベル、テキストボックス、そして最終的にはボタンなど、いくつかのコントロールを備えたwebusercontrolがあります。このコントロールの目的は、webusercontrolのボタンをクリックするたびに、プレースホルダーのメインページに追加することです。
これは、Webコントロールのボタンの背後にあるコードです
イベントが発生したときに実行する必要のあるイベントハンドラーは、メインページで次のように定義されています。
btnCriteriaToevoegen_Clickイベントが発生し、このメソッド(addCriteriaButton())を呼び出します。これにより、メインページのプレースホルダーにボタンが追加されます。
したがって、これがすべて完了し、プログラムを実行すると、彼は私のプレースホルダーにコントロールを追加しますが、ボタンをクリックしても、彼は私のプレースホルダーに新しいコントロールを追加せず、何らかの理由で私のプレースホルダーをクリアするだけです。通常はすべて問題ないはずですが、ボタンをクリックしたときに彼が実際にイベントを発生させるかどうかを確認しようとしましたが、発生しません。ページ全体のコードが非常に大きく、まったく役に立たないため、コードのサンプルを提供しようとしました。彼がボタンのイベントを起動しない理由はありますか?
c# - WebControl と UserControl ViewState に関する ASP.net の奇妙な動作
問題は解決しましたが、あるタイプのコントロールが機能し、別のタイプのコントロールが機能しない理由がわかりません。
シナリオ:私は、もともとUserControl
C# ASP.Net 4.0 の s で完全に行われていたカスタム ウィザード スタイルのページ デザインに取り組んでいます。表示しているステップは、コントロールの可視性を介してサーバー側で制御されます。
私の問題:私は s が嫌いで、 sをできるだけUserControl
使いたいと思っています。WebControl
WebControl
私の元の解決策:最初は、必要に応じて s を作成し始めましWebControl
た。WebControl
これは、与えられた から 2 ステップ離れて、 が失われるまではうまくいきましたViewState
。少なくとも私はそれが起こったと信じています。それは、CheckBoxList
私が2歩離れた途端、ListItems
姿を消しました。
最終的な解決策:と同じコントロールを再作成するUserControl
私は常に にアクセスできますCheckBoxList
Items
。
これはすべてかなり論理的に思えます。ViewState
コントロールまたはその親の 1 つが表示されていない場合、データには含まれません。本当の問題は、なぜ機能するのかということだと思いUserControl
ます。
asp.net - ユーザー コントロール イベントの結果として、ASP.Net ページで GridView を再バインドする方法
データグリッドとユーザー コントロールを含む Web ページがあります。ユーザー コントロールには、Web ページがサブスクライブするイベントがあります。ユーザー コントロール イベントで、Web ページのデータグリッドを再バインドする必要があります。
グリッドにアタッチされているエクステンダー コントロールがプリレンダリング後に登録できないことを示しているため、あらゆる種類の問題が発生しているため、ユーザー コントロール イベントがページのライフ サイクルの後半に発生するようです。いずれにせよ、これらのちょっとしたエラーは、私が完全に間違った方向に進んでいることを示しています。
可能であれば、ユーザー コントロールで自分のページを参照したくありません。
これを達成するための最良の方法は何ですか。
毎回 PageLoad でグリッドをバインドしようとしましたが、Databind が発生し、更新されたデータがデータソースにあったにもかかわらず、グリッドの内容がこれを反映していないことがわかりました。[これで遊んでいるのは GridView ビューステートですか?]
完全に更新するか、ページのボタンを使用してグリッドを再バインドすると、正しい値を表示できました。
前もって感謝します、
リアム