カスタム サーバー コントロールを作成しました
プロパティをビュー ステートに保存しようとしていますが、ポスト バックでは以前の状態に保存されている値を取得できません。以下はコードです
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;
}
ポストバックが発生した場合、最初のページの読み込み時に値がビューステートに追加されます値が利用可能である必要がありますが、現在は発生していません