我有一個.aspx應用程序,其中用戶輸入名稱並將該名稱添加到列表中。這可以完成五次。當用戶點擊按鈕時,輸入的名字將顯示在第一個標籤中。當用戶輸入另一個名稱並單擊按鈕時,第一個標籤保持不變,下一個標籤顯示新名稱等等。我的問題是列表在PostBack上重置。我正在嘗試使用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];
}
}
我得到它的工作(見上文),但我喜歡你如何做到這一點。此版本可以幫助錯誤處理以及用戶編輯信息。非常感謝,我會盡力整合你所做的。 – Chris 2013-03-12 21:28:00
只是注意到你在威奇托。我自己住在安多弗,所以感謝鄰居! – Chris 2013-03-12 21:33:53
這是一個小世界。 ;)如果您有任何問題,只需填寫我的名字。保重! – Win 2013-03-12 21:38:50