問題タブ [inamingcontainer]

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

c# - ASP.NET WebControl ITemplate 子コントロールが null です

ここに私が欲しいものがあります:

コントロールをページに配置して、他の開発者がフォーム要素を内部に配置して、コントロールが検索しているエンティティを表示できるようにしたいと考えています。検索ロジックがすべて機能しています。コントロールは、カスタム検索フィールドを作成し、インターフェイスを実装する宣言型 C# クラスに基づいて検索を実行しSearchSpecます。

これが私が試してきたことです:

INamingContainer を実装する WebControl で ITemplate を使用してみました CompositeControl を実装してみました

作業に最も近いのは以下です。

OK、カスタム WebControl があります

次に使用法:

問題は、CodeBehind で、ページにメンバー descriptionBox、ownerBox、および testNameBox があることです。ただし、それらはすべてヌルです。さらに、 と同様FindControl("ownerBox")に null を返しますthis.sp1.FindControl("ownerBox")。私はthis.sp1.MyTemplateContainer.FindControl("ownerBox")コントロールを得るためにしなければなりません。

開発者がこれを実行できるように、C#コードビハインドでコントロールが生成され、Page_Loadイベントでnullにならないようにするにはどうすればよいですか:

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

c# - ASP.NETリピーターの一意の名前のフォーマット文字列の違いの説明

リピーターコントロールの子コントロールのnameプロパティが、異なるIISサーバーに展開されたときにASP.NETアプリケーションで異なる方法で生成される理由を誰かが説明できますか?

一部のIISサーバーの名前は、次の形式を使用して生成されます。

例えば

他のIISサーバーでは、形式は次のとおりです。

例えば

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

c# - ASP.NET INamingContainer - オプションのプレフィックス

ASP.NET は常に " ct100$... " プレフィックスを要素 ID に適用しますか、それとも要素がとにかく一意であることが保証されている場合、場合によってはこれを最適化しますか。

最近、適用される ID プレフィックスが異なるビルドを見てきました。1 つはプレフィックスを持ち、もう 1 つは持っていませんが、両方とも同じソースから派生しています。

これと、INamingContainers と ID 生成の仕組みについて、これ以上の詳細を提供できる人はいますか?

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

asp.net - Selenium - ASP.NET で生成された ID (JQuery のような選択)

JQuery は、$("span[id$='Label1']")ASP.NET INamingContainer で生成された ID を選択できるようにするための構文をサポートしており、" ct100$... " というプレフィックスが付いています。

私たちは Selenium を使用しており、ASP.NET が生成するプレフィックスを無視して、要素を選択する同様の方法を探しています。

アイデア?

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

c# - .NET 4.5 の INamingContainer

最近、.NET 3.5SP1 から .NET 4.5 にアップグレードしました。INamingContainer インターフェイスを使用するコントロールが ClientID を異なる方法でレンダリングするようになったことがわかりました。

MS のドキュメントによると、INamingContainer はコントロールの階層内に新しい ID 名前空間を作成します。

古い動作では、ID は次のようになります。

しかし、次のようになります。

ct100 プレフィックスとコンテンツ ホルダー コントロール名が含まれています。

これを使用するクラスの例は次のようになります。

ClientIDMode="AutoID"下位互換性を設定しています。

以前のように、各コントロールに正しい ID を手動で与えることもできClientID="static"ましたが、これを完了するには多くの作業が必要です。

INamingContianer が以前のバージョンの .NET のようにレンダリングされない理由を理解したいと思います。

前もって感謝します。