如何知道在另一页中单击了哪些按钮

时间:2016-05-08 11:37:24

标签: c# asp.net

我有两页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页面装订时点击登录页面的哪个按钮?

1 个答案:

答案 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并获得你想要的结果。