ユーザーが名前を入力すると、その名前がリストに追加される .aspx アプリケーションがあります。これは 5 回まで実行できます。ユーザーがボタンをクリックすると、最初に入力した名前が最初のラベルに表示されます。ユーザーが別の名前を入力してボタンをクリックすると、最初のラベルは同じままで、次のラベルには新しい名前が表示されます。私の問題は、ポストバックでリストがリセットされることです。ViewState を使用してこれを解決しようとしていますが、成功しませんでした。どんな助けでも大歓迎です。
編集:私はそれがうまくいったので、皆さんの助けに感謝します. 改善の余地はまだたくさんありますが、これは素晴らしい出発点です。
[Serializable]
class Recipient
{
public string Fname { get; set; }
public string MInit { get; set; }
public string Lname { get; set; }
public string Suffix { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnEnter_Click(object sender, EventArgs e)
{
Recipient recipients = new Recipient();
List<string> FName = (List<string>)ViewState["recipientList"];
List<string> MInit = (List<string>)ViewState["recipientList"];
List<string> LName = (List<string>)ViewState["recipientList"];
if (FName == null && MInit == null && LName == null)
{
FName = new List<string>();
MInit = new List<string>();
LName = new List<string>();
}
recipients.Fname = txtFName.Text;
recipients.MInit = txtMinit.Text;
recipients.Lname = txtLName.Text;
FName.Add(recipients.Fname);
MInit.Add(recipients.MInit);
LName.Add(recipients.Lname);
ViewState["recipientList"] = FName;
ViewState["recipientList"] = MInit;
ViewState["recipientList"] = LName;
if (FName.Count == 1 && MInit.Count == 1 && LName.Count == 1)
{
lblFName.Text = FName[0] + " " + MInit[0] + " " + LName[0];
}
if (FName.Count == 4 && MInit.Count == 4 && LName.Count == 4)
{
lblFName1.Text = FName[1] + " " + MInit[2] + " " + LName[3];
}
}