我正在尝试为页面中的超链接添加条件。
而不是仅仅使用特定的链接,例如:<a href="help/Tutorial.html">Tutorial</a>
我想为不同的用户显示不同的页面。例如,如果用户以管理员身份登录,他们将看到与普通用户不同的链接。
我已将我的超链接修改为:<a onclick="displayTutorial_Click">Tutorial</a>
并添加了这段代码:
protected void displayTutorial_Click(object sender, EventArgs e)
{
// figure out user information
userinfo = (UserInfo)Session["UserInfo"];
if (userinfo.user == "Admin")
System.Diagnostics.Process.Start("help/AdminTutorial.html");
else
System.Diagnostics.Process.Start("help/UserTutorial.html");
}
但这没有用。谁能帮我弄清楚如何制作Tutorial链接工作正常吗?提前非常感谢!
The onclick
锚标记上的属性将调用客户端函数。 (如果您想在单击链接时调用 JavaScript 函数,则可以使用此方法。)
您想要的是服务器端控件,例如LinkButton http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.aspx
:
<asp:LinkButton ID="lnkTutorial" runat="server" Text="Tutorial" OnClick="displayTutorial_Click"/>
这有一个OnClick
属性将调用后面代码中的方法。
进一步查看您的代码,您似乎只是尝试根据用户的访问级别打开不同的教程。您根本不需要事件处理程序。更好的方法是只设置你的终点LinkButton
控制在后面的代码中。
protected void Page_Load(object sender, EventArgs e)
{
userinfo = (UserInfo)Session["UserInfo"];
if (userinfo.user == "Admin")
{
lnkTutorial.PostBackUrl = "help/AdminTutorial.html";
}
else
{
lnkTutorial.PostBackUrl = "help/UserTutorial.html";
}
}
真的,最好检查一下您是否真的have首先是一个用户。
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserInfo"] != null && ((UserInfo)Session["UserInfo"]).user == "Admin")
{
lnkTutorial.PostBackUrl = "help/AdminTutorial.html";
}
else
{
lnkTutorial.PostBackUrl = "help/UserTutorial.html";
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)