1

コード ビハインドのいくつかの抽象プロパティを除いて、ほぼ同じ一連の ASP.NET ページがあります。

各ページ (/default.aspx) には、ユーザー コントロールが含まれています。

<UI:SingleRaterControl runat="server" />

以前は、さまざまなコード ビハインドは、本質的に同じもののコピー アンド ペーストでした。/default.aspx.cs の各バージョンには、ユーザー コントロールを保持する保護されたプロパティがありました。

public class _default: SingleRaterBase
{
    protected SingleRaterControl singleRaterControl;
    ...
}

維持しなければならないコードの量を減らすために、_default クラスのすべての共通コードを保持する EProfileDefault という抽象クラスを作成しました (各 _default クラスは異なる名前空間にあります)。

だから今私は持っています

public abstract class EProfileDefault: SingleRaterBase
{
    protected SingleRaterControl singleRaterControl;
    ...
}

各 _default クラスには

public class _default : EProfileDefault
{
    ...
}

ただし、SingleRaterControl はコード ビハインドに自動的に割り当てられなくなりました。

これは、ASP.NET マジックが (この記事で提案されているように) 同じ名前である限り、コード ビハインド クラスの直接のインスタンスにのみユーザー コントロールを自動的に割り当てるためでしょうか?

もしそうなら、手動でユーザーコントロールを見つけて割り当てることは可能ですか?

4

1 に答える 1

0

@aquinas で提案されているように、コントロールに ID を与えると、コントロールはコントロールの ID と同じ名前の保護されたプロパティに割り当てられます。

于 2013-01-09T02:41:49.347 に答える