我創建了Listbox
食物(蘋果,香蕉等),並在頁面上運行Javascript
,將列表中的所選項目添加到ArrayList
並作爲按鈕。該按鈕的功能是當您點擊它時,該項目將從ArrayList
中刪除,同時該按鈕也被刪除(回發後)。在一次回傳後從列表中刪除
當我運行此代碼時,它將項目添加到列表並按預期創建按鈕。但是,當我單擊按鈕時,它不會從列表中刪除項目,直到頁面再次加載。
我該怎麼做才能在點擊和第一次回發之後從ArrayList
中刪除該項目,而不是在兩次回發之後?
static private ArrayList myAL { set; get; }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
myAL = new ArrayList();
Report1();
Label1.Text = myAL.Count.ToString();
}
private void Report1()
{
String FullFilter = ""; int FilterCount = 0;
if (Request.Params["ListBox1Hidden"] != null && (string)Request.Params["ListBox1Hidden"] == "doubleclicked")
myAL.Add(lstBox.SelectedItem.Text);
myAL.Remove(Session["RemoveButton"].ToString());
foreach (Object obj in myAL)
{
FilterCount++;
if (FilterCount > 1)
FullFilter += ", ";
FullFilter += String.Format("'{0}'", obj);
Button button = new Button();
button.Text = obj.ToString();
button.ID = "Dist" + obj.ToString();
button.Click += new EventHandler(ButtonClickOneEvent);
PlaceHolder1.Controls.Add(button);
}
Label1.Text += FullFilter;
}
void ButtonClickOneEvent(object sender, EventArgs e)
{
Button button = sender as Button;
myAL.Remove(button.Text);
}
是否有你需要使用ArrayList的原因?除非你有一個非常有說服力的理由,否則你應該總是使用強類型的通用數據結構。 – MgSam
請勿在「ASP.NET C# - 」等前加前綴。這就是標籤的用途。 –
另外,你是否意識到'靜態'字段在應用程序的所有用戶之間共享?這可能不是你想到的:如果一個用戶刪除一個列表項目,下一個用戶將看到該項目被刪除。 –