問題タブ [findcontrol]

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 投票する
2 に答える
1619 参照

c# - バインドされた列を挿入するときに、FindControl が GridView で機能しない

いくつかの ItemTemplates を持つ gridview があります。最初のものにはチェックボックスが含まれ、残りにはテキストボックスが含まれます。

次に、次のようなバインドされたコントロールを動的に追加しました。

次に、FindControl() を使用してチェックボックスとテキストボックスを見つけ、結果に基づいてロジックを実行します

これはすべてうまくいきました。次に、バインドされたフィールドを 2 列目、3 列目、4 列目、チェック ボックスの後、テキスト ボックスの前に配置するように要求されました。Add を Inserts に次のように変更することで、これは簡単に実行できることがわかりました。

ページは問題ないように見えましたが、FindControl() はすべて機能しません。

解決策または回避策を提案してください。

前もって感謝します。

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

asp.net - グリッドビューでasp.net検索コントロール

検索コントロールを使用して Label4 にアクセスするにはどうすればよいですか?

あなたが提供できる助けをありがとう:)

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

asp.net - Asp.NetのFindControl

ページ内のコントロールを見つけようとしています。IDはサーバーコントロール(チェックボックス)として使用できます。これにより、「文字列をdoubleに変換できません」という例外がスローされます。

誰かが私が間違っているところを教えてもらえますか?

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

asp.net - リピーターで動的に追加されたコントロールの選択された値が見つかりません

ラジオボタンリスト、チェックボックスリスト、またはテキストボックスにすることができる質問と回答のリストを持つ調査ページを作成しています。これらのコントロールは、Controls.Add を使用して ItemDataBound イベントで Repeater に動的に追加されます。

ページを正常にレンダリングできましたが、フォームを送信してリピーターのコントロールを反復処理して、ラジオボタンとテキストボックスの値の選択された値を取得すると、FindControl は null を返します。選択した値を取得するにはどうすればよいですか? RepeaterItems を反復しようとしましたが、null も返されました。さまざまな種類の FindControl を試しましたが、コントロールの種類が解決されません。このように Repeater に宣言型の DataBinder を追加すると機能します

ただし、コントロールを動的に追加したいのですが、これを行うと、送信時に選択した値を取得できません。これは私のコードの主要な構造です...

0 投票する
4 に答える
1160 参照

asp.net - カスタムバリデーターが起動しない(エラーメッセージはありませんが、検証はありません)

私はカスタムバリデーターを持っています:

データリストによって提供される質問のリストがあります。これは、ユーザーが各質問に対する回答を選択できるようにするために必要です。次に、検証機能があります。

ページを実行すると、検証もエラーメッセージも表示されません。私がどこで間違っているのか指摘していただけませんかPage.Master.FindControl("form1").Controls

以前、form1.controlsを介してコントロールをループすることでこのような検証を行いましたが、ページがマスターページを介して渡されたフォームを使用しているため、これは使用できません。

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

c# - aspxのコントロールを見つける

いくつかのradcomboboxがあるPromote.aspxページがあります。radTermおよびradOldYear。Promote.aspxには、WebUserControl、promote.ascxによって更新可能なradgridもあります。このWebユーザーコントロールには、いくつかのradcombobox、radName、およびradNewyrがあります。

Promote.ascx.csで、promote.aspxにあるcomoboxを見つけられるようにしたいと思います。使用してみました:

無駄に!誰かがメインページでコントロールを見つけるのを手伝ってください。radgridにロードするwebusercontrolを介してそれらを呼び出しています。

0 投票する
3 に答える
7204 参照

c# - FindControl()がNullReferenceExceptionをスローする原因は何ですか?

構築しているユーザーコントロールがあります(ASP.NET 3.5、C#を使用)。

このコントロールは、主に別の同様のコントロールに基づいています(残念ながら、カットアンドペーストの継承ですが、これを抽象化する簡単な方法はありません)。私に問題を引き起こしている行は、ディスプレイの大部分と同様に、他のコントロールから直接コピーされています。

関連するコード行は次のとおりです。

pnlForm上記のは、と同様に正しく検出されますltrAvailableCount

にスキップするとdrpQuantity、それと次の行は正常に機能します。ただし、、、またはの行を実行すると、drpLanguagedrpShipToスローhdnAvailableProductId FindControlされNullReferenceExceptionます。

'null'を返すという意味ではなく、返されたオブジェクトのプロパティにアクセスしようとすると、メソッドFindControlは例外をスローします。MSDNライブラリによると、これは不可能です。FindControlスローされる可能性のあるエラーとして何もリストされません。コントロールが見つからない場合はnullを返すとだけ表示されます。

FindControlNullReferenceExceptionの原因は何ですか?

- - - - - - - - -編集 - - - - - - - -

また、問題のある3つの行のいずれかをイミディエイトウィンドウで実行すると、正しい結果が得られることにも言及する必要があります。デバッグ中に検査すると、ControlCollectionのコントロールも表示されます。pnlForm

-----------------2回目の編集-------------------

確認のために、別の行を追加しました。DropDownList notThere =(DropDownList)pnlForm.FindControl( "notHere"); コントロールnotHereはページのどこにもありません。上記の行は(もちろん)コンパイルされ、デバッガーを実行すると正常に実行されます。キャストはうまくいきます。変数notThereは単にnullです。

この問題の根本的な原因は、FindControlがコントロールの検索に失敗し、DropDownListまたは他のコントロールにnullをキャストしようとしたことではありません。

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

c# - Gridview FindControlはカレンダーを検索しますが、DropDownListは検索しません

GridViewEditItemTemplateにDropDownListがあります。ddlは実行時に入力されます。各行のオプションは異なる場合があります。

GridViewは希望どおりに機能しています。非編集モードでは、データにバインドします。編集モードでは、EditItemTemplateで指定されたコントロールがレンダリングされます。

質問:このDropDownListでFindControlを使用できないのはなぜですか?EditItemTemplateにもあるCalendarコントロールでFindControlを実行できることに注意してください。

以下はASPXとC#のコードです。

ありがとう!!

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

asp.net - Panel.FindControl()メソッドは、それに追加されたコントロールを見つけていません

同じID(oops)を持つ2つのテキストボックスを追加する次のコードについて考えてみます。

このコードは、同じIDを2回追加するのを停止するように設計されています。ただし、このPanel.FindControl()メソッドは、前のコード行で追加されたコントロールを検出していません。

私はこれを間違った方法で使用していますか?

つまり、次のように、次のレベルのコントロールを手動で繰り返すことができます。

しかし、これが機能しない理由はわかりませんが、Placeholderコントロールとは正常にUserControl機能します。

私がsを使用している理由Panelは、CSSスタイリングのためです。body> div> input-しかし、それでも-動作していません。

0 投票する
9 に答える
108761 参照

asp.net - ASP.NET でコントロールを見つけるためのより良い方法

私は複雑なasp.netフォームを持っており、1つのフォームに50から60のフィールドがありMultiview、MultiView内GridViewにはCheckBoxes.

現在、メソッドのチェーンを使用しFindControl()て子 ID を取得しています。

さて、私の質問は、ASP.NET でネストされたコントロールを見つける他の方法/解決策があるということです。