[英]How to create a listbox dynamically in ASP.Net
protected override void OnInit(EventArgs e)
{
ListBox lst = new ListBox();
lst.Attributes["class"] = "cat-list";
lst.DataSource = cat.list(Convert.ToInt32(0));
lst.DataTextField = "catName";
lst.DataValueField = "catId";
lst.DataBind();
lst.AutoPostBack = true;
lst.SelectedIndexChanged += Lst_SelectedIndexChanged;
Panel pnl = new Panel();
pnl.Attributes["class"] = "col-sm-2 col-xs-12";
pnl.Controls.Add(lst);
categories.Controls.Add(pnl);
}
private void Lst_SelectedIndexChanged(object sender, EventArgs e)
{
ListBox listBox = (ListBox)sender;
ListBox lst = new ListBox();
lst.Attributes["class"] = "cat-list";
lst.DataSource = cat.list(Convert.ToInt32(listBox.SelectedValue));
lst.DataTextField = "catName";
lst.DataValueField = "catId";
lst.DataBind();
lst.AutoPostBack = true;
lst.SelectedIndexChanged += Lst_SelectedIndexChanged;
Panel pnl = new Panel();
pnl.Attributes["class"] = "col-sm-2 col-xs-12";
pnl.Controls.Add(lst);
categories.Controls.Add(pnl);
}
第一個Listbox selectedindexchanged
事件工作但第二個Listbox selectedindexchanged
事件無效。 如果我在第二個列表框上選擇一個選項,則第二個列表框丟失。只需在第一個列表框中保留選定選項。 我該怎么辦? 請幫我。
我希望能幫助你
Panel pnl = new Panel();
ListBox lst1 = new ListBox();
ListBox lst2 = new ListBox();
ListBox lst3 = new ListBox();
protected override void OnInit(EventArgs e)
{
lst1.Attributes["class"] = "cat-list";
lst1.AutoPostBack = true;
lst1.SelectedIndexChanged += Lst_SelectedIndexChanged;
lst2.Attributes["class"] = "cat-list";
lst2.AutoPostBack = true;
lst2.SelectedIndexChanged += Lst_SelectedIndexChanged;
lst2.Visible = false;
lst3.Attributes["class"] = "cat-list";
lst3.AutoPostBack = true;
lst3.SelectedIndexChanged += Lst3_SelectedIndexChanged;
lst3.Visible = false;
pnl.Attributes["class"] = "col-sm-2 col-xs-12";
pnl.Controls.Add(lst1);
pnl.Controls.Add(lst2);
pnl.Controls.Add(lst3);
categories.Controls.Add(pnl);
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lst1.DataSource = cat.list(Convert.ToInt32(0));
lst1.DataTextField = "catName";
lst1.DataValueField = "catId";
lst1.DataBind();
}
}
private void Lst_SelectedIndexChanged(object sender, EventArgs e)
{
ListBox listBox = (ListBox)sender;
ListBox lst;
if (listBox == lst1)
lst = lst2;
else
lst = lst3;
lst.DataSource = cat.list(Convert.ToInt32(listBox.SelectedValue));
lst.DataTextField = "catName";
lst.DataValueField = "catId";
lst.DataBind();
lst.Visible = true;
}
private void Lst3_SelectedIndexChanged(object sender, EventArgs e)
{
//your code for third Listbox
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.