當我點擊btnGDynamicCont時,我想加載第一組控件,然後在每次進一步單擊該按鈕時,添加一個新控件(文本框)以及其他控件,所以每次點擊時我都會添加一個新的文本框州。如何在按鈕點擊時添加新的動態控件?
你知道我應該在哪裏添加新文本框的創建,以便在每次回發後保留它嗎?
{
protected void Page_Load(object sender, EventArgs e)
{
if (Convert.ToString(ViewState["Generated"]) == "true")
GenerateDynamicControls();
}
public void GenerateDynamicControls()
{
TextBox txtDynamic = new TextBox();
txtDynamic.ID = "txtDynamic";
txtDynamic.Text = "Dynamic TextBox";
Page.Form.Controls.Add(txtDynamic);
TextBox txtDynamic2 = new TextBox();
txtDynamic2.ID = "txtDynamic2";
txtDynamic2.Text = "Dynamic Textbox";
Page.Form.Controls.Add(txtDynamic2);
}
protected void btnGDynamicCont_Click1(object sender, EventArgs e)
{
if (Convert.ToString(ViewState["Generated"]) != "true")
{
GenerateDynamicControls();
ViewState["Generated"] = "true";
}
else
{
Response.Write("<h2>Controls are already exist in page</h2>");
}
}
}
}
我目前添加的那些是在page_load中,問題是如果我不想添加預定義的控件,而是每次單擊(我這樣做)時添加一個新實例,那麼它創建第一個控件並從不創建第二個控件。我曾嘗試過沒有ID等,希望它會繼續在頁面上創建控件,但事實並非如此。 – connersz
我不確定我是否理解你的評論:(無論如何,如果你希望以前創建的控件出現在頁面上,你應該在每次向服務器請求時重新創建它們。 – platon