我想知道如何保留文本框的文本,即使我必须加载新页面,点击超链接。
它总是一个空字符串。
有人能帮助我吗?
lkForgotten.NavigateUrl = string.Format("Logon.aspx?forgotten={0}", "");
lkSend.NavigateUrl = string.Format("Logon.aspx?forgotten={0}&userEmail={1}", "submited", txtForgotten.Text);
try
{
if (Request.QueryString["forgotten"].ToString() == "")
{
txtForgotten.Visible = true;
lkSend.Visible = true;
}
if (Request.QueryString["forgotten"].ToString() == "submited")
{
userEmail = txtForgotten.Text;
SendForgottenPassword(userEmail);
}
}
catch { }
答案 0 :(得分:3)
如果您需要保留特定于此人的某些数据,则可以使用会话。这正是你需要的东西。
您可以随时设置并获取所需的值。
http://msdn.microsoft.com/en-us/library/ms178581.aspx
修改强> 为了满足评论中提出的一些异议,如果会话本身不够,您仍然可以使用不同的方法。使用javascript监视文本框,如果它们的值已更改,请添加cookie(或向现有cookie添加值,具体取决于需要)。比使用查询字符串更好的方法来实现这种功能...至少在我看来。
答案 1 :(得分:0)
修改
使用
进行重定向Javascript代码
function redirect()
{
var val = document.getElementById('<%= txtForgotten.ClientID %>').value;
location.href='Logon.aspx?forgotten=submitted&userEmail=' + val ;
}
<input type="button" VALUE="Visit Microsoft" OnClick="redirect();">
上面代码的问题是当你在页面加载时创建忘记密码的url时,文本框值为空,何时通过单击忘记密码链接进行重定向只是它变为空值而不是你在代码中键入的内容。 ..使其工作使用如上所述的javascript重定向或使用为您重定向的click事件....
<强>单位强>
按照这样的行改变
if (Request.QueryString["forgotten"].ToString() == "submited") {
userEmail = txtForgotten.Text = Request.QueryString["userEmail"].ToString() ;
SendForgottenPassword(userEmail);
}
因此,当您点击按钮时,它会从查询字符串中获取userEmail的值并恢复您文本框中的值...这肯定会完成您的任务
或
你可以利用像饼干这样的其他客户端mecanisam来存储价值,然后将其重新回到页面上......
如果你想存储值并将其检索回来,那么serverside选项也是有用的会话变量.....