我想在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
链接。
感谢您的帮助。
答案 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。