2011-03-04 7 views
1

私は、リストボックスの後に、リストアイテムの数に追加した属性をポストバック後に覚えておく必要がある状況に陥っています。私は問題を解決するようだが、それを実装する方法がわからない、このソリューションをオンラインで見つけました。C#拡張リストボックス - ポストバック後に追加の属性を記憶します。

List box solution

彼は罰金であるリストボックスから継承するクラスを書いたと言うが、私はそれをやったし、それEnhancedListBox呼ばれているが、どのように私は、私はページ上で使用しているリストボックスにそれを適用しません?

私はちょうど

<asp:EnhancedListBox> 

<asp:ListBox > 

を代用することはできませんが、どのように他の私は、ページが、私は私の継承されたコードを使用したい知っているのですか?

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

答えて

0

SaveViewStateおよびLoadViewStateは、オーバーライドできる仮想的な方法です。それは、このようにそれを行うことは非常に一般的です、

class EnhancedListBox : ListBox 
{ 
    protected override object SaveViewState() 
    { 
     // code here from the tutorial 
    } 
    protected override void LoadViewState(object savedState) 
    { 
     // code here from the tutorial 
    } 
} 

これも"Creating a custom control"と呼ばれ、それはあなたに大きな柔軟性を提供します:あなたがやってみたいことはListBox「自分自身」を作成します。

+0

優秀、ありがとう。 – scaryjones

+0

上記のコードを実行しましたが、それを自分のページのコントロールとして使用する方法がわかりません。私は別のプロジェクトでそれを構築しようとしましたが、これはDLLを含んでいます(残念ですが、とにかくです)。これは私が "Unknown server tag 'asp:EnhancedListBox'を取得しているので動作しないようです。"エラー。私がここで間違っていることは誰でも知っていますか? – scaryjones

+0

@scaryjones、あなたは正しく名前空間を含んでいますか? –