2

プロパティを公開するカスタム コントロールがあります。固定値を使用して設定すると、すべてが正しく機能します。しかし、 <%= %> タグを使用してその値を設定しようとすると、少しおかしなことになります:

<cc:CustomControl ID="CustomControl" runat="server" Property1='<%= MyProperty %>' />
<%= MyProperty %>

これがレンダリングされると、カスタム コントロールの下にある <%= MyProperty %> タグが期待どおりに (MyProperty の値で) レンダリングされます。ただし、CustomControl の Render 関数にステップインすると、Property1 の値は文字列 "<%= MyProperty %>" であり、MyProperty の実際の基になる値ではありません。

4

2 に答える 2

3

コントロールは、 の間にマークアップから初期化されOnInitます。MyPropertyしたがって、その構文が機能したとしても、レンダリング時ではなくレンダリング時に評価されるため、とにかく必要な効果はOnInitありません(2番目の使用法と同様)。

代わりにデータ バインディング構文を使用します。

<cc:CustomControl ID="CustomControl" runat="server" Property1='<%# MyProperty %>' />

必ずDataBind()コンテナー (Page、UserControl など) を呼び出してください。

または、コード ビハインドでプロパティを設定することもできます。

CustomControl.Property1 = MyProperty;
于 2008-10-22T16:04:38.420 に答える
1

CustomControl で <%# MyProperty %> を試して、動作するかどうかを確認してください。

于 2008-10-22T15:59:16.527 に答える