-2

我想onserverclick在应答器中添加一个事件<a>

<a onServerClick="verif" runat="server" href="/annexe/Ajouter/ajout_agence.aspx">Ajouter agence</a>

在代码隐藏中,我将验证定义为:

protected void verif(Object sender, EventArgs e)
{
    if (Session["user"].Equals("magasinier"))
    {
        DialogResult result1 = MessageBox.Show("Non autorisé!", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
        if (result1 == DialogResult.OK)
        {
            result1 = DialogResult.Ignore;
        }
    }
    else
    { 
        ...
    }
}

在中else,我想自动重定向到href链接。

谢谢你的帮助。

4

3 回答 3

1

试试这个它的工作

protected void verif(Object sender, EventArgs e)
{
    if (Session["user"].Equals("magasinier"))
    {
        DialogResult result1 = MessageBox.Show("Non autorisé!", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
        if (result1 == DialogResult.OK)
        {
            result1 = DialogResult.Ignore;
        }
    }
    else
    { 
        Response.Redirect( ((System.Web.UI.HtmlControls.HtmlAnchor)sender).HRef);//sender is your anchor tag. And take it's href attribute and redirect
    }
}
于 2013-06-17T12:26:03.743 回答
0

你在找这个吗?

else
    {
       Response.Redirect(yourURL);
    }
于 2013-06-17T12:09:44.607 回答
0

您的使用MessageBox.Show将不起作用。消息框将出现在服务器上(它根本不会出现,因为 asp.net 不是交互式进程),而不是客户端计算机上。您可以编写一些 JavaScript 来处理这个问题:

<a id="verif" runat="server" href="/annexe/Ajouter/ajout_agence.aspx">Ajouter agence</a>

<script>
  $("#verif").click(function(e)
  {
     //some ajax call to check if valid
     if (!isValid)
     {
        window.alert("Non autorisé!");
        e.preventDefault();
     }
  });
</script>

请注意,您需要编写一个 ajax 服务来检查用户是否有效并返回 true 或 false。您也不应该仅仅依赖于此,还应该检查服务器,以防用户篡改页面或手动访问 URL。

于 2013-06-17T12:17:49.937 回答