页面加载期间的标签更改
Label changes during page load
我正在尝试将我的密码值捕获到 Label
。
4个数字字母和1个小写字母
这是我添加数字和数字的方法
public void SaveTransactionID()
{
string password = lblStart.Text + lblStop.Text;
lblPassword.Text = password;
}
生成器:
private void GenRandomNumber()
{
Random generator = new Random();
String r = generator.Next(0, 10000).ToString("D4");
lblStart.Text = r;
}
//Generate Random Letter
static class RandomLetter
{
static Random _random = new Random();
public static char GetLetter()
{
// This method returns a random lowercase letter.
// ... Between 'a' and 'z' inclusize.
int num = _random.Next(0, 26); // Zero to 25
char let = (char)('a' + num);
return let;
}
}
我的页面加载
protected void Page_Load(object sender, EventArgs e)
{
char lowerCase;
lowerCase = Convert.ToChar(RandomLetter.GetLetter());
lblStop.Text = lowerCase.ToString();
GenRandomNumber();
}
我知道每次加载页面时我的密码都会更改。这就是为什么我试图将它保存在我的 Label
上,这样我就可以在页面再次加载时获取密码。但事情是我的 SaveTransactonId()
在页面加载期间也会发生变化。如何在页面加载时存储我的密码值?
您可以将值存储在 Session
variable; you can also control what runs in Page_Load
on initial page load vs. subsequent page reloads (per session) via Page.IsPostBack
属性.
这是一个例子:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
char lowerCase;
lowerCase = Convert.ToChar(RandomLetter.GetLetter());
lblStop.Text = lowerCase.ToString();
GenRandomNumber();
}
}
这将解决您的问题。
编辑:
这里是 short explanation 当 IsPostBack
= true 或 false 时发生的情况。对于开发调试代码的单机,"Client"就是你的浏览器,"Server"就是你的电脑。 (在链接的文章中,问题不是 "What is IsPostBack?" 正确的问题是 "What is PostBack?" 有一个更好、更复杂的图表;我找不到它,但这样就可以了。)
PostBack 是将 ASP.NET 页面提交给服务器进行处理的过程的名称。如果(例如)要根据某些来源检查页面的某些凭据(例如验证数据库的用户名和密码),则执行回发。这是客户端无法自行完成的事情,因此这些详细信息必须通过用户交互 'posted back' 发送给服务器。
回发是从客户端(浏览器)到服务器然后返回到客户端的往返。这使您的页面能够通过服务器上的 asp 引擎并更新任何动态内容。
有关 PostBack 问题的更详细答案,see here。
这是 ASP.NET(网页)页面生命周期概述的 description,其中一些涉及 PostBack。
在里面写你的代码 if(!Page.IsPostBack){// 把你的逻辑放在这里。}
并且您可以在 Session["sessionKey"] = value;
中保存您的值
您可以通过检查会话是否为空来检索它
if(会话["sessionKey"] !=null);
lblPassword.Text = 会话["sessionKey"];
我正在尝试将我的密码值捕获到 Label
。
4个数字字母和1个小写字母
这是我添加数字和数字的方法
public void SaveTransactionID()
{
string password = lblStart.Text + lblStop.Text;
lblPassword.Text = password;
}
生成器:
private void GenRandomNumber()
{
Random generator = new Random();
String r = generator.Next(0, 10000).ToString("D4");
lblStart.Text = r;
}
//Generate Random Letter
static class RandomLetter
{
static Random _random = new Random();
public static char GetLetter()
{
// This method returns a random lowercase letter.
// ... Between 'a' and 'z' inclusize.
int num = _random.Next(0, 26); // Zero to 25
char let = (char)('a' + num);
return let;
}
}
我的页面加载
protected void Page_Load(object sender, EventArgs e)
{
char lowerCase;
lowerCase = Convert.ToChar(RandomLetter.GetLetter());
lblStop.Text = lowerCase.ToString();
GenRandomNumber();
}
我知道每次加载页面时我的密码都会更改。这就是为什么我试图将它保存在我的 Label
上,这样我就可以在页面再次加载时获取密码。但事情是我的 SaveTransactonId()
在页面加载期间也会发生变化。如何在页面加载时存储我的密码值?
您可以将值存储在 Session
variable; you can also control what runs in Page_Load
on initial page load vs. subsequent page reloads (per session) via Page.IsPostBack
属性.
这是一个例子:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
char lowerCase;
lowerCase = Convert.ToChar(RandomLetter.GetLetter());
lblStop.Text = lowerCase.ToString();
GenRandomNumber();
}
}
这将解决您的问题。
编辑:
这里是 short explanation 当 IsPostBack
= true 或 false 时发生的情况。对于开发调试代码的单机,"Client"就是你的浏览器,"Server"就是你的电脑。 (在链接的文章中,问题不是 "What is IsPostBack?" 正确的问题是 "What is PostBack?" 有一个更好、更复杂的图表;我找不到它,但这样就可以了。)
PostBack 是将 ASP.NET 页面提交给服务器进行处理的过程的名称。如果(例如)要根据某些来源检查页面的某些凭据(例如验证数据库的用户名和密码),则执行回发。这是客户端无法自行完成的事情,因此这些详细信息必须通过用户交互 'posted back' 发送给服务器。
回发是从客户端(浏览器)到服务器然后返回到客户端的往返。这使您的页面能够通过服务器上的 asp 引擎并更新任何动态内容。
有关 PostBack 问题的更详细答案,see here。
这是 ASP.NET(网页)页面生命周期概述的 description,其中一些涉及 PostBack。
在里面写你的代码 if(!Page.IsPostBack){// 把你的逻辑放在这里。}
并且您可以在 Session["sessionKey"] = value;
中保存您的值您可以通过检查会话是否为空来检索它
if(会话["sessionKey"] !=null);
lblPassword.Text = 会话["sessionKey"];