我知道這個問題已經被問過幾千次了,之前我一直在努力,但由於某種原因,我無法完成我想完成的任務......我有一個動態添加的LinkButton,點擊後會動態添加一個控件(在本例中爲一個文本框)到同一個面板。其目的是不斷添加與LinkButton點擊次數相同的控件(即,我點擊一次,一個框,然後再次點擊會給我2個框,另一個點擊會添加一個第三個)。在下面的代碼中,我使用序列化的當前日期和時間爲每個文本框控件創建一個唯一的ID。ASP.NET動態創建控件和Postback
當我執行代碼時,單擊「添加過濾器」將會生成一個新的文本框,但是一旦再次單擊將創建一個新的文本框,並在其之前處理該文本框。相反,我想堅持以前的文本框以及其中提交的任何數據。
您的幫助表示讚賞。
在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);
}
在某個應用程序中創建問卷(民意調查)並通過網絡服務 呈現的情況下,您會做什麼?網站會提取投票併爲其顯示字段? 在這種情況下動態創建內容是唯一合適的選項不是? – Sander 2011-05-31 09:14:26
是的,動態創建內容是按順序的,但它不必像我試圖做的那樣是漸進的;我假設您的網絡服務每次都會返回所有結果,在這種情況下,您每次都會呈現所有結果。通過使用視圖狀態和緩存,你的表現應該很好。 – 2011-05-31 16:23:01
你是個天才。我試圖實現與OP相同的功能,但是這讓我意識到我可以不添加多個控件實例,只需在模式窗口中顯示新控件,並在她的模式中「保存」,提交到數據存儲區並然後很容易地加載到頁面上。一千謝謝你。我已經花了3天時間,今天晚上都試圖弄清楚這一點。 – 2014-07-23 14:30:36