Listbox
食品 (リンゴ、バナナなど) を作成Javascript
し、リストから選択した項目をArrayList
ボタンとして追加するページを実行しています。ボタンは、クリックすると項目が から削除されArrayList
、ボタンも (ポストバック後に) 削除されるように機能します。
このコードを実行すると、項目がリストに追加され、期待どおりにボタンが作成されます。ただし、ボタンをクリックしても、ページがもう一度リロードされるまでリストから項目が削除されません。
ArrayList
2回のポストバックの後ではなく、クリックと最初のポストバックの後にアイテムが削除されるようにするにはどうすればよいですか?
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);
}