我有一個困擾我三天的問題。問題與動態文本框,如何存儲textValues
在我的web表單上我想要一個按鈕,在這個按鈕上點擊我想動態地在asp:PlaceHolder中創建五個文本框。
而且我想,我在這個texBoxes中輸入的值,即使在postBack之後也會保存。用第二個按鈕我想存儲它們。
我已經閱讀過有關頁面,viewState,IsPostBack,...的很多文章的動態創建控件的文章,但我仍然無法編程這個。
我嘗試了幾種方法,但沒有成功。以下是我的「傑作」的最後一個版本。請幫我完成這個任務,因爲它讓我感到噁心。謝謝,馬丁
namespace DynamicCreate
{
public partial class _Default : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox textBox;
private TextBox[] my_dynamicTextBoxes = new TextBox[5];
private string[] textBoxValues = new string[5];
protected void Page_Load(object sender, System.EventArgs e)
{
btn_save_tb_values.Click += new EventHandler(save_btnClick);
but_load_tb.Click += new EventHandler(creat_tb_btnClick);
int i = 0;
foreach (TextBox tb in my_dynamicTextBoxes)
{
if (ViewState["c_textBox" + i.ToString()] != null)
{
tb.Text = (string)ViewState["c_textBox" + i.ToString()];
i++;
}
else
{
textBox = new TextBox();
textBox.ID = "c_textBox" + i.ToString();
my_dynamicTextBoxes[i] = textBox;
i++;
}
}
}
protected void creat_tb_btnClick(object sender, EventArgs e)
{
int i = 0;
foreach (TextBox neww in my_dynamicTextBoxes)
{
c_placeholder.Controls.Add(neww);
c_placeholder.Controls.Add(new LiteralControl("<br>"));
ViewState["c_textBox" + i.ToString()] = neww.Text;
i++;
}
}
protected void save_btnClick(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++) {}
}
}
}
<form id="form1" runat="server">
<div>
<div> <asp:PlaceHolder ID="c_placeholder" runat="server"></asp:PlaceHolder> </div>
<div> <asp:Button runat="server" ID="but_load_tb" Text="Dodaj Polja!!"/> </div>
<div> <asp:Button runat="server" ID="btn_save_tb_values" Text="Izpisi Vrednosti!" /> </div
</div>
</form>