Я делаю программу, которая принимает пользовательский ввод и заполняет его в список. Эта часть отлично работает. Однако пользователю нужна возможность редактировать или удалять его ввод. Я не могу понять, как удалить элемент из списка. Вот код для заполнения списка:Мне нужно удалить элементы из списка
[Serializable]
class Recipient
{
public string Fname { get; set; }
public string MInit { get; set; }
public string Lname { get; set; }
public string Suffix { get; set; }
public string Amount { get; set; }
public string Message { get; set; }
public string Custom { get; set; }
public string CardType { get; set; }
} protected void btnToCart_Click(object sender, EventArgs e)
{
if (ValidateInput("Card Information"))
{ SetUI("Your Shopping Cart"); }
else
{
return;
}
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"];
List<string> Suffix = (List<string>)ViewState["recipientList"];
List<string> Amount = (List<string>)ViewState["recipientList"];
List<string> Message = (List<string>)ViewState["recipientList"];
List<string> Custom = (List<string>)ViewState["recipientList"];
List<string> CardType = (List<string>)ViewState["recipientList"];
if (FName == null && MInit == null && LName == null && Suffix == null && Amount == null &&
Message == null && Custom == null && CardType == null)
{
FName = new List<string>();
MInit = new List<string>();
LName = new List<string>();
Suffix = new List<string>();
Amount = new List<string>();
Message = new List<string>();
Custom = new List<string>();
CardType = new List<string>();
}
recipients.Fname = txtFName.Text;
recipients.MInit = txtMInit.Text;
recipients.Lname = txtLName.Text;
recipients.Suffix = ddlSuffix1.SelectedItem.ToString();
recipients.Amount = txtAmount.Text;
recipients.Message = ddlMessage.SelectedItem.ToString();
recipients.Custom = txtCustom.Text;
recipients.CardType = lblImage.Text;
FName.Add(recipients.Fname);
MInit.Add(recipients.MInit);
LName.Add(recipients.Lname);
Suffix.Add(recipients.Suffix);
Amount.Add(recipients.Amount);
Message.Add(recipients.Message);
Custom.Add(recipients.Custom);
CardType.Add(recipients.CardType);
ViewState["recipientList"] = FName;
ViewState["recipientList"] = MInit;
ViewState["recipientList"] = LName;
ViewState["recipientList"] = Suffix;
ViewState["recipientList"] = Amount;
ViewState["recipientList"] = Message;
ViewState["recipientList"] = Custom;
ViewState["recipientList"] = CardType;
if (FName.Count == 1 && MInit.Count == 1 && LName.Count == 1 && Suffix.Count == 1)
{
lblCartName.Text = FName[0] + " " + MInit[0] + " " + LName[0] + " " + Suffix[0];
lnkEdit1.Visible = true;
}
if (Amount.Count == 1 && Message.Count == 1 && Custom.Count == 1)
{
lblCartAmount.Text = "$" + Amount[0] + ".00";
if (txtCustom.Text == string.Empty)
{
lblCartMessage.Text = Message[0];
}
else
{
lblCartMessage.Text = Custom[0];
}
}
Да есть больше, но в любом случае, когда пользователь нажимает на следующую кнопку, то резюме отображается пользователю со всей введенной информации. Существует также две кнопки ссылки на форму, которая дает пользователю возможность редактирования или удаления. Я пробовал варианты:
FName.Remove (recipients.fname); и FName.RemoveAt (0), например, и ни одна из них не сработала. Так что это моя проблема, любая помощь будет очень признательна. Благодаря
Вы перезаписать тот же элемент в 'ViewState' при вызове' ViewState [ "recipientList"] = бла ' –
этот пример дал мне головную боль – TalentTuner
Я уверен, что у вас есть причины для этого, но разве было бы проще создать« Список », чем отдельные списки каждого поля? –