自动填充文本框,基于用户输入

时间:2014-01-30 03:51:41

标签: asp.net webforms textbox autofill

我是ASP.NET的新手,遇到了一个我尚未弄清楚的问题。在我的Default.aspx页面上,我有一个用户可以注册的地方。这只需要字段 - 电子邮件和密码。单击提交按钮后,他们将进入Signup.aspx,其中显示了一个更大的注册表单,其中包含用户名,电子邮件,密码,确认密码等字段。我想自动填写我的电子邮件和密码文本框与用户输入的Default.aspx页面。这可能吗?我正在使用Microsoft Visual Web Developer 2010 Express。

1 个答案:

答案 0 :(得分:0)

有多种方法可以做到这一点。

  • 一种方法是使用查询字符串导航到:

    http://example.com/Signup.aspx?email=value1&password=value2

    并在Signup.aspx Page_Load 事件中获得价值,如:

    String email = Request.QueryString["email"];

    String password = Request.QueryString["password"];

    并为您的文本框分配控件,如:

    txtEmail.text =email;

    txtPassword=password;

但是在查询字符串中将密码作为明文发布并不是一种好习惯。

  • 其他方法是从源页面获取HTTP POST 信息:
    1. 在源页面中,包含一个表单元素,其中包含HTML元素(如input或textarea)或ASP.NET服务器控件(如TextBox或DropDownList控件),这些控件在提交表单时发布值。
    2. 在目标页面中,阅读表单集合,该集合返回名称/值对的字典,每个发布值一对。 e.g。

//

void Page_Load(object sender, EventArgs e)
{
    System.Text.StringBuilder displayValues = 
        new System.Text.StringBuilder();
    System.Collections.Specialized.NameValueCollection 
        postedValues = Request.Form;
    String nextKey;
    for(int i = 0; i < postedValues.AllKeys.Length; i++)
    {
        nextKey = postedValues.AllKeys[i];
        if(nextKey.Substring(0, 2) != "__")
        {
            displayValues.Append("<br>");
            displayValues.Append(nextKey);
            displayValues.Append(" = ");
            displayValues.Append(postedValues[i]);
        }
    }
   Label1.Text = displayValues.ToString();
}
  • 最佳&amp; 最简单我认为是使用会话

    在Default.aspx的Submitbutton_click事件上,将值保存到Session,如:

    Session["Email"] = txtEmail.text;

    Session["Password"]=txtPassword.text;

并检索Signup.aspx Page_load事件的值,例如:

string email = (string)(Session["Email"]);

string password = (string)(Session["Password"]);

&安培;分配给您的控件/文本框,如:

txtEmail.text =email;

txtPassword=password;

还有更多方法可以从上一页检索价值,例如PreviousPage.FindControl("txtEmail"),但我从不喜欢它们。