不工作 - onserverclick属性

时间:2013-06-17 12:00:39

标签: c# html asp.net

我想在balise onserverclick中添加<a>个事件:

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

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

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链接。

感谢您的帮助。

3 个答案:

答案 0 :(得分: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
    }
}

答案 1 :(得分:0)

你在找这个吗?

else
    {
       Response.Redirect(yourURL);
    }

答案 2 :(得分: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服务来检查用户是否有效&amp;返回true或false。您也不应仅仅依赖于此,还要检查服务器,以防用户篡改页面,或手动转到URL。