2016-05-31 117 views
0

我试图将我的密码的值捕获到Label4位字母1小写字母页面加载期间标签更改

这是我的方法添加两个数字和num

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()也在页面加载期间改变。即使页面加载,我如何存储密码的值?

+3

写你的代码里面,如果!(IsPostBack){}它会解决你的问题:) –

+0

可能重复[从文本框获取文本/价值/文本后更改服务器端](http://stackoverflow.com/questions/34544500 /从文本框中获取文本值 - 文本更改服务器端) –

+0

@ManishGoswami它确实工作 –

回答

2

下面是一个例子:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      char lowerCase; 
      lowerCase = Convert.ToChar(RandomLetter.GetLetter()); 
      lblStop.Text = lowerCase.ToString(); 

      GenRandomNumber(); 
     } 
    } 

这将解决您的问题。

编辑:

这里是发生什么情况的short explanationIsPostBack = true或false。对于用于开发和调试代码的单台计算机,“客户端”是您的浏览器,“服务器”是您的计算机。 (在链接的文章中,问题不是“什么是IsPostBack?”正确的问题是“什么是PostBack?”有一个更好,更复杂的图表;我找不到它,但这会做。)

PostBack是将ASP.NET页面提交给服务器进行处理的过程的名称。如果(例如)要根据某些源(如验证数据库的用户名和密码)检查页面的某些凭证,则会执行PostBack。这是客户自己无法完成的事情,因此这些细节必须通过用户交互“回传”给服务器。

回发是从客户端(浏览器)到服务器然后回到客户端的往返行程。这使您的页面可以通过服务器上的asp引擎以及任何要更新的动态内容。

对于回发问题的更详细的答案,see here

这是ASP.NET(web-)页面生命周期概述的description,其中一些涉及PostBack。

+0

虽然这个答案在技术上是正确的,但是通过解释建议码。 – CoolBots

+0

优秀的解释! +1!谢谢! – CoolBots

0

您可以将该值存储在Session变量中;您还可以通过Page.IsPostBack属性控制在初始页面加载时对Page_Load运行的内容与随后的页面重新加载(每个会话)。

1

if(!Page.IsPostBack){//把你的逻辑放在这里。}

你可以保存你的值在Session [“sessionKey”] = value;

,您可以通过检查会话检索它不是空

如果(会话[ “sessionKey”]!= NULL);

lblPassword.Text = Session [“sessionKey”];