今天写程序遇到一个问题,我简化如下:
protected void Page_Load(object sender, EventArgs e)
{
l();
}
public void l()
{ Label1.Text = Label2.Text; }
protected void Button1_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(Label2.Text);
i++;
Label2.Text = i.ToString(); }
label的text属性设置为1;这样运行后2个label的值为1,1 单击button后为1,2 再单击为2,3 如此类推
代码改为如下:protected void Page_Load(object sender, EventArgs e)
{
l();
}
public void l()
{ Label1.Text = Label2.Text; }
protected void Button1_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(Label2.Text);
i++;
Label2.Text = i.ToString();
l();
}
就是在button的单击事件里加个l()函数,这样运行后2个label的值为1,1 单击button后为2,2 再单击为3,3 如此类推,这样
2个值就同步了,请问为什么会这样,当我单击button时有没有重新load页面,请把这个程序的运行顺序详细说明下,谢谢。
protected void Page_Load(object sender, EventArgs e)
{
l();
}
public void l()
{ Label1.Text = Label2.Text; }
protected void Button1_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(Label2.Text);
i++;
Label2.Text = i.ToString(); }
label的text属性设置为1;这样运行后2个label的值为1,1 单击button后为1,2 再单击为2,3 如此类推
代码改为如下:protected void Page_Load(object sender, EventArgs e)
{
l();
}
public void l()
{ Label1.Text = Label2.Text; }
protected void Button1_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(Label2.Text);
i++;
Label2.Text = i.ToString();
l();
}
就是在button的单击事件里加个l()函数,这样运行后2个label的值为1,1 单击button后为2,2 再单击为3,3 如此类推,这样
2个值就同步了,请问为什么会这样,当我单击button时有没有重新load页面,请把这个程序的运行顺序详细说明下,谢谢。
这是由于页生命周期顺序是先执行Page_load再执行方法 Button1_Click
第二种情况其实和一一样 不过你最后又执行了一次l(),所以就同步咯