【问题标题】:Not working - onserverclick attribute [closed]不工作 - onserverclick 属性 [关闭]
【发布时间】:2013-06-13 09:02:13
【问题描述】:

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

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

感谢您的帮助。

【问题讨论】:

  • 我不确定你要的是什么...
  • 只用鼠标,拖动页面上的链接按钮,然后转到属性并添加onclick,双击它,然后编写代码。
  • 好的,谢谢 Aristos :)

标签: c# html asp.net


【解决方案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
    }
}

【讨论】:

    【解决方案2】:
    【解决方案3】:

    您无法使用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。

    【讨论】:

    • 是的,非常感谢 simon halsey
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    • 2014-11-27
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 2016-12-29
    相关资源
    最近更新 更多