4

投票ボタンを提供するユーザー コントロールがあります (SO タイプの投票モデルの場合)。これには、レコードの ID を保持するプライベート int メンバーが含まれています。リピーターの外では、問題なく機能します - ポストバックが機能し、正しい ID がユーザー コントロールに保持されます。

リピーター内では、itemdatabound イベント ハンドラーが正しい ID をユーザー コントロールに関連付け、正しく動作します。つまり、データベースからの正しい投票数が表示されます。ただし、投票ボタンの 1 つが押されると、ユーザー コントロールへのポストバックが発生し、コントロールはプライベート int メンバーの内容を失ったため、機能しなくなります。

ポストバックでユーザーコントロールを再データバインドすることと、初期ロードでのみバインドすることの両方を試しました-問題はどちらの方法でも同じです。

ポストバック全体でその int の値を保持するようにユーザー コントロールを取得するにはどうすればよいですか?

4

1 に答える 1

5

値を viewstate に入れてみましたか?

public string Id{
    get
    {
        return this.ViewState["Value"] == null ?
            0 :
            (int)this.ViewState["Value"];
    }
    set { this.ViewState["Value"] = value; }
}
于 2009-02-22T15:29:37.933 に答える