public partial class _Default : Page
{
Label myLabel1;
Label myLabel2;
protected void Page_Load(object sender, EventArgs e)
{
myLabel1 = new Label();
myLabel2 = new Label();
Panel1.Controls.Add(myLabel1);
Panel2.Controls.Add(myLabel2);
if (!Page.IsPostBack)
{
//Remove the session when first time page loads.
Session.Remove("clicks");
Session.Remove("clicks2");
}
}
private void BuildTextBoxes(int rowCount1, int rowCount2)
{
for (int i = 0; i < rowCount1; i++)
{
TextBox TxtBoxU = new TextBox();
TxtBoxU.ID = "TextBoxU" + i.ToString();
//Add the labels and textboxes to the Panel.
Panel1.Controls.Add(TxtBoxU);
}
myLabel1.Text = rowCount1 + "";
for (int i = 0; i < rowCount2; i++)
{
TextBox TxtBoxU = new TextBox();
TxtBoxU.ID = "TextBoxU" + i.ToString();
//Add the labels and textboxes to the Panel.
Panel2.Controls.Add(TxtBoxU);
}
myLabel2.Text = rowCount2 + "";
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
int rowCount1 = 0;
//initialize a session.
rowCount1 = Convert.ToInt32(Session["clicks"]);
rowCount1++;
//In each button clic save the numbers into the session.
Session["clicks"] = rowCount1;
BuildTextBoxes(rowCount1, Convert.ToInt32(Session["clicks2"]));
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
int rowCount2 = 0;
//initialize a session.
rowCount2 = Convert.ToInt32(Session["clicks2"]);
rowCount2++;
//In each button clic save the numbers into the session.
Session["clicks2"] = rowCount2;
BuildTextBoxes(Convert.ToInt32(Session["clicks"]), rowCount2);
}
}
太感谢你了。
有几件事你需要做。因为您是动态生成这些文本框的,所以您需要在每次处理页面(甚至回发)时生成它们。它们还需要在加载viewstate之前生成。
每次加载页面时,您都需要在面板中重新创建TextBoxs,这应该发生在page_init函数中(需要在加载viewstate之前发生)。
有关ASP.NET页生命周期的详细信息:ASP.NET页生命周期概述
Label myLabel1;
Label myLabel2;
/// <summary>
/// Add the dynamic controls to the page before the viewstate is
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void page_init(object sender, EventArgs e)
{
myLabel1 = new Label();
myLabel2 = new Label();
Panel1.Controls.Add(myLabel1);
Panel2.Controls.Add(myLabel2);
var box1Count = 0;
box1Count = Convert.ToInt32(Session["clicks"]);
var box2Count = 0;
box2Count = Convert.ToInt32(Session["clicks2"]);
BuildTextBoxes(box1Count, box2Count);
}
/// <summary>
/// Ensure first time loads properly setup the page.
/// </summary>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//Remove the session when first time page loads.
Session.Remove("clicks");
Session.Remove("clicks2");
//Set the Text Boxes and lables to zero.
BuildTextBoxes(0, 0);
}
}
/// <summary>
/// Add any new text boxes to the screen.
/// </summary>
/// <param name="rowCount1">The total number of text boxes in the first group.</param>
/// <param name="rowCount2">The total number of text boxes in the second group.</param>
private void BuildTextBoxes(int rowCount1, int rowCount2)
{
var panel1Count = Panel1.Controls.Count; //Current number of text boxes
panel1Count--; //Remove the Label control from the count
for (int i = panel1Count; i < rowCount1; i++)
{
TextBox TxtBoxU = new TextBox();
TxtBoxU.ID = "TextBox1U" + i.ToString(); //Ensure a globally unique name.
Panel1.Controls.Add(TxtBoxU); //Add the labels and textboxes to the Panel.
}
myLabel1.Text = rowCount1.ToString();
var panel2Count = Panel2.Controls.Count; //Current number of text boxes
panel2Count--; //Remove the Label control from the count
for (int i = panel2Count; i < rowCount2; i++)
{
TextBox TxtBoxU = new TextBox();
TxtBoxU.ID = "TextBox2U" + i.ToString(); //Ensure a globally unique name;
Panel2.Controls.Add(TxtBoxU); //Add the labels and textboxes to the Panel.
}
myLabel2.Text = rowCount2 + "";
}
/// <summary>
/// Add another textbox to the first group.
/// </summary>
protected void LinkButton1_Click(object sender, EventArgs e)
{
int rowCount1 = 0;
//initialize a session.
rowCount1 = Convert.ToInt32(Session["clicks"]);
rowCount1++;
//In each button click save the numbers into the session.
Session["clicks"] = rowCount1;
BuildTextBoxes(rowCount1, Convert.ToInt32(Session["clicks2"]));
}
/// <summary>
/// Add another textbox to the second group.
/// </summary>
protected void LinkButton2_Click(object sender, EventArgs e)
{
int rowCount2 = 0;
//initialize a session.
rowCount2 = Convert.ToInt32(Session["clicks2"]);
rowCount2++;
//In each button clic save the numbers into the session.
Session["clicks2"] = rowCount2;
BuildTextBoxes(Convert.ToInt32(Session["clicks"]), rowCount2);
}
问题内容: 我有一个字符串(基本上是遵循命名约定的文件名) 我想在第一个(即一个点)之前提取子字符串 在java doc api中,我似乎找不到在String中执行此操作的方法。 我想念什么吗?怎么做? 问题答案: 看看和。 确保检查的-1 。
这是我的代码。我正在使用role=“textbox”并从中获取值。但是,当我在textbox中输入多行文本时,它会给出多行的值。如何在单行中获得该值?
问题内容: 我在JavaScript中有一个字符串,例如“#box2”,我只想从中获得“ 2”。 尝试过: 它仍然在警报中返回#box2,我该如何使其正常工作? 它需要容纳末尾附加的任何长度的数字。 问题答案: 对于此特定示例, 在一般情况下: 由于这个答案由于某种原因而受到欢迎,因此有一个好处:正则表达式生成器。
我有这样一个JSON文件: 我需要得到回应。使用者用户名值。我试过这个: 但我得到了这个错误: 怎么修,肯定有办法,就是找不到。
问题内容: 即时通讯正在处理日期,并且我在从字符串中获取日期时遇到问题,我在这里简化了我的问题: 输出为:“ 25-05-2015”(可以),“ 2014年12月21日,上午12:00”(???) 问题答案: 那里的问题是为了。您必须使用。顺便说一句,不要忘记将日期格式设置的语言环境设置为“ en_US_POSIX” 。 如果您使用固定格式的日期,则应首先将日期格式器的语言环境设置为适合您的固定格
问题内容: 我有一个字符串,我想从中获取一些值。 我的字符串看起来像: 字符串1: 字串2: 不幸的是,存在这样一种情况,字符串将具有相同的概念,但是没有一些参数: 字串3: 我怎样才能得到的值:,,,,? 任何帮助表示赞赏! 问题答案: 您的字符串是JSON格式的,因此您需要将其 解析 为一个对象。为此,您可以使用JSON.NET。 这是有关如何将JSON字符串解析为动态对象的示例: 编码愉快!