У меня есть проблема, которая беспокоит меня в течение трех дней.
В моей веб-форме мне нужна кнопка, по нажатию которой я хочу динамически создать пять текстовых полей в 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>