問題タブ [naming-containers]
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.
jsf - p:radioButton の for-Attribute で ID を参照する
parent-parent-naming コンテナの子であるコンポーネントを識別する ID を参照することは可能ですか?
例えば:
selectedFolder
の for-attribute からid を参照したい<p:radioButton>
。しかし、<ui:repeat>
は であるためNamingContainer
、selectedFolder
は別のものにあり、NamingContainer
これをどのように参照できるかわかりません。のようなものを書くことは可能for="../selectedFolder"
ですか?
これは複合コンポーネントの一部であるため、絶対 ID 参照は使用できません。prependId="false"
inも使用してみまし<ui:repeat>
たが、うまくいきませんでした。
c# - INamingContainerでカスタムコントロールを作成するにはどうすればよいですか?
私は次のことを試みています:
私のコンテナクラス:
そして私のマークアップ:
しかし、何らかの理由Container.Index
で値をレンダリングせず、単に空にします。10個のコントロールが作成されていますが、値を示すものはありません。
私は何を間違えましたか?値が表示されるように修正するにはどうすればよいIndex
ですか?
私はMSDNの例に似たものを試しました:
c# - サーバー制御でCustomValidatorを動的に作成する
RadEditor(基本的にはテキストエリア)をラップするカスタムサーバーコントロールがあります。CustomValidatorを動的に追加しようとしていますが、最初のページロードでこのエラーが発生し続けます
''の'ControlToValidate'プロパティによって参照されるコントロールID'RadEditor1'が見つかりません。
これは、CustomValidatorを作成するためにサーバーコントロール内で使用しているコードです。
jsf - clientId を介して複合コンポーネントの兄弟にアクセスする方法
いくつかの入力フィールドをバンドルする複合コンポーネントがあります。コンポーネントはページで複数回使用され、これらのコンポーネントの別の値をコピーするためのボタンが含まれています。このためには、clientId を介してこれらの兄弟の 1 つにアクセスする必要があります。
<f:ajax execute=":XXX:siblingId" render="...">
私の問題は、この ID の作成にあります。:form:foo:bar:parent:child
兄弟の名前があり、それがコピー ボタンを含むコンポーネントと同じ名前付けコンテナーに配置されていることを確認できますが、ネスト階層全体を制御できないため、form:parent:child
. したがって、基本的には、現在の複合コンポーネントのプレフィックスを取得しますが、コンポーネント自体の ID を取得せずに、コピー元のコンポーネントの ID を添付します。
これは、次の質問に似ています。
@parent
ただし、どちらの回答も、や などの PrimeFaces 固有の機能を利用widgetVar
していますが、これは私のプロジェクトには当てはまりません。
EL の暗黙的なオブジェクトを試すとき、私は基本的に 2 番目の質問のポスターと同じことを試しました - 同じ結果:cc.parent.clientId
は常に空です。cc.namingContainer.clientId
残念ながら、2つの組み合わせも試してみましたが、成功しませんでした。parent
特に期待通りに動かないという事実は私を混乱させます...
だから:複合コンポーネントの名前付けコンテナを含む「パス」にアクセスするためのコンポーネントライブラリに依存しない方法はありますか?特に、オブジェクトはどのように機能parent
するはずですか? いつ使用できるか、いつ使用できないか?
PS: コンポジットの完全な clientId を使用してから、実際の ID を でトリミングすることを考えてfn:split
いましたが、より直接的な方法があれば喜んで使用します。
ajax - component.namingContainer.parentはh:formをスキップします
複合コンポーネントを作成しました。その中には<f:ajax>タグがあり、その「render」属性はccのパラメーターです。
このようなもの:
私はこのccをフォーム内で使用します。これは、すでに外部の名前付けコンテナーにあります。
問題は、私が書く場合
このエラーが発生します:
一方、これを使用する場合(+ .parent):
エラーは次のとおりです。
期待されるIDの代わりに:
ですから、私のccのネーミングコンテナの親はフォームではなく、外部のネーミングコンテナのようです。
次の方法はありますか:1、正しい親(フォーム)を取得する2、パラメーターとして渡す前にELを評価する(したがって、EL式の代わりに計算されたclientIdをccに渡すことができるため、コンポーネントは参照しませんcommandLinkタグに、しかし私がccを入れたh:formに)
私は私が使うことができることを知っています
しかし、私はその解決策が好きではありません
また、フォームのprependId属性をfalseに設定すると、コンポーネントのルックアップ全体が壊れます(結果としてajaxタグも壊れます)
asp.net - コンテンツ ページで動的に作成された入力コントロールからフォーム データを取得する
この質問には明らかな答えがあると信じていましたが、何も見つからないようです。いくつかの動的に作成された入力コントロールがあるコンテンツ ページを持つ ASP.Net MasterPage があります。それらを含むフォームを投稿すると、それらの値を取得したいと思います。これは、コントロールの name 属性を使用し、Request.Form[name] を呼び出すことによってのみ可能です。
入力コントロールは ContentPlaceHolder の一部であるため、名前属性にはコントロールの UniqueId が割り当てられます。これは、たとえば「ctl00$skts_body_div$MyNameId」のような文字列です。
上記の例の名前はランダムに生成された名前ではありませんが、コントロールの親の構造に依存するため、ポストバックで「ctl00$skts_body_div$MyNameId」という名前を生成するのは簡単ではないため、呼び出すことができますRequest.Form["ctl00$skts_body_div$MyNameId"].
投稿されたデータを取得するベスト プラクティスの方法は何ですか?
プラットフォームは.Net 4.0
ありがとうジハード
asp.net - ASP.Net - コンテナーの命名と ClientIDMode="Static"
ClientIdMode に関する MSDN ドキュメントの状態:
静的 ClientID 値は、ID プロパティの値に設定されます。コントロールが名前付けコンテナーである場合、そのコントロールは、それに含まれるすべてのコントロールの名前付けコンテナーの階層の最上位として使用されます。
ソース: http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode%28v=vs.100%29.aspx
しかし、私は「階層のトップ」ビジネスが当てはまるとは思いません。たとえば、私はユーザーコントロールを持っています:
適切な測定のために、コントロール ソースにも clientidmode を設定しましたが、どちらが必要かはわかりません。
ユーザー コントロール内に、テキスト ボックスがあります。
私の期待は、テキストボックスの名前が次のようになることですWidgetsListControl$testTextBox
ただし、ソースを表示すると次のようになります。
私は何が欠けていますか?ユーザーコントロール内のすべてのコントロールに「静的」を設定せずに、探しているもの(短いID)を達成する方法はありますか?
編集:
実際に詳しく調べてみると、ID 属性は MSDN で説明されているとおりに機能していることがわかりましたが、name 属性は依然として名前付けコンテナー階層の完全な連結です。
非常に複雑なサイトでは、これらのコントロールの名前と ID が帯域幅 (マークアップ サイズ) の大部分を占め始めます。この点に関して、マークアップをスリム化するための適切な回避策が見つからないようです。
c# - リピーターアイテムは NamingContainer を見つけることができません
最近、リピーターの ComboBox を SuggestComboBox (見つかった: here ) に切り替えました。以前は、その ComboBox の NamingContainer を使用して近くの要素を見つけていました。私の新しい SuggestComboBox にはこの値はありませんが、この問題に関する私の調査では、リピーターのすべての子が既にこれを持っている必要があるように見えますか?
「NamingContainer プロパティは、そのクラスまたは派生クラスの任意のインスタンスに対してコードで使用できます。」(見つかった:ここ)
私は何が欠けていますか?
これが私のリピーターです:
そして、ここに私が他の要素にアクセスしようとしている私の関数があります: