0

カスタム コントロールのコンテナーがあり、それぞれに 2 つのコントロールがあります。有効な場合に表示するラベル (つまり、テキストボックスまたはチェックボックス) と、無効な場合に表示するラベル。

私はRender次のようにオーバーロードしました:

    Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
        If Me.Enabled Then
            _item.RenderControl(writer)
        Else
            _display_text.RenderControl(writer)
        End If
    End Sub

ただし、テーブルであるコンテナーを に設定するとEnabled = False、期待した機能が実行されません。代わりに、テキストボックスとチェックボックスがグレー表示されます。

Enabled親のプロパティを設定すると実際に何が起こるでしょうか? そのステータスがすべての子に伝搬されたと私は推測していましたが、どうやら私は間違っているようです。

ありがとうございました!

4

1 に答える 1

0

簡単に言えば、あなたの仮定は実際には間違っているということです。

必要に応じて(そしてWebControlを拡張していて、コンテナーにrunat = serverがある場合)、次を使用できます。

If NamingContainer.Enabled Then

それ以外の

If Me.Enabled Then

ただし、プロパティはaspのツリーを自動伝播しません。

于 2009-01-27T20:53:12.617 に答える