私は、その有効プロパティ私は(含むページのコードビハインドから)別のクラスを使用して評価する必要がAsp.NetのTextBoxコントロールを持っています。私はこれをしたいの方法は次のとおりです。外部メソッド呼び出しのサーバーコントロールへの自己参照を含めるにはどうすればよいですか?
<asp:TextBox ID="myTB" runat="server" Enabled="<% ToggleControl(this, "someBusinessValue") %>" ... />
私は、呼び出し元のコントロールへの参照を渡す必要がある理由は、私はそれを無効にする前に検討する必要があるかもしれない他のプロパティがあるかどうかを確認することです。ただし、 'this'キーワードはページ全体を指します。私のTextBoxがFormViewコントロール、またはGridViewコントロール内とすることができるので、私は簡単に単に「page.myTB」を調べることによって制御を取得することはできません。私は、TextBoxへの参照を取得するためだけに、受け取り側のクラスファイルでGridViewsを実行する必要はありません。
誰もがこのように制御インラインを参照する方法を知っていますか?
EDIT 1:これは、サーバーコントロールのいくつかの異なるタイプに行う必要があります、などのListBox、チェックボックス、RadioButtonListの、など
EDIT 2:私が思い付くした最高あまりエレガントではありません
<asp:TextBox ID="myTB" runat="server" Enabled="<% ToggleControl(myGridView.FindControl("myTB") as WebControl, "someBusinessValue") %>"
が、それは私が必要とするオートリファレンスを与えて行います。これまでのところです。
は実際に興味深いジレンマを厥。通常、私はいくつかのロジックを持って私のコントロールが必要なときには、自分自身のロジックを含む独自の特別なTextBoxにサブクラス化します。結局のところ、物事は何ですか? –
通常はそうしますが、必要な振る舞いはすべての入力コントロールに適用できるので、存在する各入力コントロールをサブクラス化する必要はありません(また、これを行うには新しいものも必要です)。 ウェブコントロールアダプターの使用を検討していましたが、もう少し複雑です。 –