Hej, jag har stött på ännu ett problem, eventet nedan vill inte köras.
Är det någon vänlig själ som skulle kunna hjälpa mig med detta? vad kan vara problemet?
DropDownList inquiryarticlelist = new DropDownList();
foreach (Article a in ArticlesDatabase.Articles.GetArticlesByCompanyID(currentUser.CompanyID))
{
inquiryarticlelist.Items.Add(new ListItem(a.Term, a.ID.ToString()));
}
inquiryarticlelist.AutoPostBack = true;
inquiryarticlelist.SelectedIndexChanged += new EventHandler(inquiryarticlelist_SelectedIndexChanged);
Hur kollar jag om den sparas i viewstate? jag har en till dropdownlist med ett selectedindexchanged-event, men det fungerar som det ska. Dock är den dropdownlisten inte genererad dynamiskt, utan finns i aspx-filen från början.
När jag har gjort ett val i min första, statiska dropdownlist så fylls värden i i den/de dynamiska, men då jag ska ändra i den nya så händer ingenting.
AutoPostBack är påslaget så det är inte det som är problemet. Jag ger dropdownlistan ett ID, så det är heller inte problemet.
Det är i denna metod som den dynamiska listan skapas:
protected void Dropdownlistinquiries_SelectedIndexChanged(object sender, EventArgs e)
{
int articledropdownID = 0;
User currentUser = (User)Session["user"];
if (Dropdownlistinquiries.SelectedIndex != 0)
{
Inquiry tempInquiry = InquiryarticlesDatabase.Inquiries.GetInquiry(int.Parse(Dropdownlistinquiries.Items[Dropdownlistinquiries.SelectedIndex].Value));
foreach (InquiryArticle ia in tempInquiry.Articles)
{
TableCell articlenrcell = new TableCell();
TableCell pcs_cell = new TableCell();
TableCell suborder = new TableCell();
TableCell termcell = new TableCell();
TableCell revnr = new TableCell();
TableRow articlerow = new TableRow();
DropDownList inquiryarticlelist = new DropDownList();
foreach (Article a in ArticlesDatabase.Articles.GetArticlesByCompanyID(currentUser.CompanyID))
{
inquiryarticlelist.Items.Add(new ListItem(a.Term, a.ID.ToString()) { Selected=(ia.Article.ID == a.ID)});
}
inquiryarticlelist.ID = articledropdownID.ToString();
inquiryarticlelist.AutoPostBack = true;
inquiryarticlelist.SelectedIndexChanged += new EventHandler(inquiryarticlelist_SelectedIndexChanged);
articlenrcell.Controls.Add(inquiryarticlelist);
pcs_cell.Text = ia.Pieces.ToString();
suborder.Text = ia.SubOrder.ToString();
termcell.Text = ia.Article.Term;
revnr.Text = ia.RevisionNumber;
articlerow.Cells.Add(articlenrcell);
articlerow.Cells.Add(pcs_cell);
articlerow.Cells.Add(suborder);
articlerow.Cells.Add(termcell);
articlerow.Cells.Add(revnr);
InquiryTableArticles.Rows.Add(articlerow);
articledropdownID++;
}
Dropdownlistinquiries.SelectedIndex = Dropdownlistinquiries.SelectedIndex;
}
}
Det har du fullständigt rätt i, att den inte är! vad dum jag känner mig ibland... men frågan är då, hur kan jag lösa det? vad är det smidigaste sättet att se till att dropdownlistan inte försvinner vid nästa postback?
Du får återskapa den själv hela tiden. Mitt förslag är att du skapar en i OnInit, efter att baser.OnInit() har körts. Sedan skippar du att fånga eventet på din första dropdown. På så vis kommer den skapas varje gång av sig självt
135 ms totalt · 3 externa anrop · v20260731065814-full.55e59744