1

カスタム サーバー コントロールを作成しました

プロパティをビュー ステートに保存しようとしていますが、ポスト バックでは以前の状態に保存されている値を取得できません。以下はコードです

  private int attachmentId;
    public int AttachmentId
    {
        get { return attachmentId; }
        set { attachmentId = value; }
    }

  private string attachmentName = string.Empty;
    public string  AttachmentName
    {
        get { return attachmentName; }
        set { attachmentName = value; }
    }


 protected override void LoadViewState(object savedState)
    {
        object[] state = (object[])savedState;
        base.LoadViewState(state[0]);
        this.attachmentName = (string)state[1];
        this.attachmentId = (int)state[2];           
    }

 protected override void OnLoad(EventArgs e)
    {
        if(!IsPostBack)
        {
        this.AttachmentName ="HelloText.txt";
        this.AttachmentID = 10;
         }
    }

 protected override object SaveViewState()
    {
        object[] state = new object[3];
        state[0] = base.SaveViewState();
        state[1] = this.attachmentName;
        state[2] = this.attachmentId;

        return state;
    }

ポストバックが発生した場合、最初のページの読み込み時に値がビューステートに追加されます値が利用可能である必要がありますが、現在は発生していません

4

1 に答える 1