2012-02-27 8 views
3

私はいくつかのページにすべてGridViewコントロールを持っています。そのコントロール内に実装する必要があるいくつかのイベントがあります(OnRowDataBoundOnEditing、など)aspから継承:GridView

これらのイベントのそれぞれを実装するために(仮想関数)のページを継承している限り、どんな提案もありますか?私はGridViewがコントロールになっているため、それがどのように見えるかを視覚化することはできません。コントロールから継承するにはどうすればよいですか?これを行うための

答えて

2

一般的な方法は、ユーザーコントロール上のグリッドを配置し、そこにすべてのイベントを購読している場合、あなたはどこでもあなたが欲しいこの実装を再利用することができますUserControl

であなたのGridViewを含むことになりますアプリケーション - 基本的に、必要な機能を持つユーザーコントロールをラップし、このラッパーをどこにでも再利用しています。

素敵なことは、ワイヤーアップコードを一度書き込むだけでいいということです。

これは私があなたがしたいと思うものです。

これらのイベントをユーザーコントロール外で拡張または処理する場合は、それらを再実装する必要があります(つまり、独自のイベントハンドラを追加してバブルアップさせる必要があります)。

あなたのイベントに誰かが強制的に登録することはできません。

イベントを強制的に実装したい場合は、イベントをインターフェイスに配置し、追加するクラスまたはコントロールにそのインターフェイスを実装できます。インターフェース上にイベントがあるので、インターフェースが実装されるまでコンパイルすることはできません。

具体的な使用例がある場合は、例を追加してみてください。

+0

次に、このコントロールを使用するすべてのページで、すべてのイベントを強制的に実装するにはどうすればよいですか?この新しいユーザーコントロール内に、このコントロールに固有の機能ではなく、同様の機能を追加しますか? – duckmike

+0

ページはこれらのイベントを実装する必要はありません。それだけでそれらを購読する必要があります。誰かにイベントを強制的に購読させることはできません。これらのイベントが常に実装されていることを確認したい場合は、あなたのusercontrolでそれを行いますが、本当にあなたが何をしたいかによって決まります。 – dash

+0

usercontrolにgridviewのラッピングを実装したリンクを教えてください。ありがとうございました – Pankaj