我有两页login.aspx和registration.aspx,在login.aspx中有两个按钮
1)
<asp:Button ID="btnlogin" runat="server" Text="Log in" onclick="btnlogin_Click" >
</asp:Button>
2)
<asp:Button ID="btnsubmit" runat="server" Text="Submit" onclick="btnlre_Click">
</asp:Button>
现在,当registration.aspx页面加载时,我想知道点击了哪些按钮。 如何知道在registration.aspx页面装订时点击登录页面的哪个按钮?
答案 0 :(得分:1)
您可以像这样Session["btnClicked"] = "value1 or value2"
创建会话变量(单击btn1时调用此代码并存储值“value1”,与btn2相同但值为“value2”)和on registration.aspx,在Page_Load
if(Session["btnClicked"] != null)
{
if(Session["btnClicked"] == "value1")
*code for case 1*
if(Session["btnClicked"] == "value2")
*code for case 2*
Session["btnClicked"] = null;
}
或者,在点击btn1时使用Server.Transfer("registration.aspx?btnClicked=1");
,在点击btn2时使用Server.Transfer("registration.aspx?btnClicked=2");
,在Page_Load
中的registration.aspx上使用
if (Request.QueryString["btnClicked"] != null)
{
if (Request.QueryString["btnClicked"] == "1")
*code for case 1*
if (Request.QueryString["btnClicked"] == "2")
*code for case 2*
}
编辑(解释):
的 Session
强>
Session
存储在服务器上。它用于存储可以发送的数据,或者不应该在其他任何地方看到。因此,为了您的服务器性能,只在Session
中存储密码,信用卡号,电话号码,用户名,邮件等数据,并且仅在您需要多页的信息时才存储。
<强> Request.QueryString
强>
此函数检查标题中的变量。在我的回答中,当您使用此方法时,您“存储变量”,但仅适用于下一页,在本例中为registration.aspx。使用此方法,您不使用服务器的RAM内存来存储变量。相反,您使用客户端的Web浏览器来存储变量名称和变量值。请注意,任何人都可以轻松操纵此数据。我可以输入类似“您的网站 /registration.aspx?btnClick=23456”的标题,然后您就会遇到问题。在搜索某些内容时,请查看Google的标题。你知道,即使你在标题中输入搜索而不是用于搜索的文本框,谷歌的引擎也不会受到伤害。所以,当你知道你可以(在这种情况下)只有两个可能的registration.aspx结果时,最好检查一下:
1)在头文件中是变量的(Request.QueryString [“btnClicked”]!= null)
2)除了你需要的变量之外的任何其他变量(Request.QueryString [“btnClicked”]!= 1和Request.QueryString [“btnClicked”]!= 2)
在这些情况下,只需将用户返回登录页面即可。这样你就可以保存服务器的RAM并获得你想要的结果。