我知道這個(gè)問(wèn)題已經(jīng)被問(wèn)過(guò)數(shù)千次了,之前我一直在努力,但是由于某種原因,我無(wú)法完成我想完成的工作...我有一個(gè)動(dòng)態(tài)添加的LinkButton,單擊該按鈕可以動(dòng)態(tài)添加控件(在此示例中為文本框)添加到同一面板。目的是要不斷增加與單擊LinkButton時(shí)一樣多的控件(即,我單擊一次,一個(gè)框,然后另一個(gè)單擊將給我2個(gè)框,另一個(gè)單擊將添加第3個(gè)框)。在下面的代碼中,我使用序列化的當(dāng)前日期和時(shí)間為每個(gè)文本框控件創(chuàng)建唯一的ID。當(dāng)我執(zhí)行代碼時(shí),單擊“添加篩選器”將生成一個(gè)新的文本框,但是再次單擊將創(chuàng)建一個(gè)新的文本框,并在此之前處理該文本框。相反,我想保留先前的文本框以及其中提交的所有數(shù)據(jù)。感謝您的幫助。在aspx中:<asp:Panel ID="pnlFilter" runat="server"></asp:Panel>在aspx.cs中:protected void Page_Init(object sender, EventArgs e){ LinkButton lb = new LinkButton(); lb.ID = "lbAddFilter"; pnlFilter.Controls.Add(lb); lb.Text = "Add Filter"; lb.Click += new EventHandler(lbAddFilter_Click);}void lbAddFilter_Click(object sender, EventArgs e){ TextBox tb = new TextBox(); tb.ID = "tb" + DateTime.Now.ToBinary().ToString(); pnlFilter.Controls.Add(tb);}
3 回答

拉丁的傳說(shuō)
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
對(duì)于其他試圖做這樣的事情的人:不要。相反,請(qǐng)考慮信息流并了解有一種更好的方法。無(wú)需動(dòng)態(tài)創(chuàng)建輸入控件。它們可以是靜態(tài)的,并且在填寫并提交后,該信息必須到達(dá)某個(gè)地方(例如,數(shù)據(jù)庫(kù),緩存,會(huì)話)。一旦到達(dá)那里,就回發(fā),遍歷您選擇的存儲(chǔ)中的所有項(xiàng)目并為其創(chuàng)建顯示。
那就是我所做的,它使生活變得更加輕松。希望它可以幫助某人。

江戶川亂折騰
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
我認(rèn)為您需要在每次回發(fā)中重新創(chuàng)建每個(gè)控件。
我知道Repeater控件存儲(chǔ)了有關(guān)其子級(jí)的足夠信息,以便在數(shù)據(jù)綁定時(shí)重新創(chuàng)建它們……您可以使用它來(lái)節(jié)省一些工作。
- 3 回答
- 0 關(guān)注
- 569 瀏覽
添加回答
舉報(bào)
0/150
提交
取消