protected void Page_Load(object sender, EventArgs e)
{
string menuIDdata = Page.Request.QueryString["mid"];
menuID = 0;
// Check the user is allowed here
if (!Roles.IsUserInRole("Admin"))
{
Response.Redirect("../default.aspx");
}
// Get the menu ID
if (int.TryParse(menuIDdata, out menuID))
{
menuID = int.Parse(menuIDdata);
}
else
{
menuID = 0;
}
debugLabel.Text = "WORKING";
var selectedMenu = this.Page.FindControl("mnu" + menuID) as Panel;
selectedMenu.CssClass = "navButtonO";
}
在页面上:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="admin.aspx.cs" Inherits="*******._Default" title="Administration" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="mainHead" runat="server" >
<title>Administration</title>
<link rel="Stylesheet" href="../style/admin.css" />
</head>
<body>
<form id="mainForm" runat="server">
<div class="topMenu">
<asp:Panel id="mnu0" runat="server" class="navButton">
<a href="admin.aspx" class="navLink">Admin Home</a>
</asp:Panel>
<asp:Panel id="mnu1" runat="server" class="navButton">
<a href="admin.aspx" class="navLink">User Manager</a>
</asp:Panel>
<asp:Panel id="mnu2" runat="server" class="navButton">
<a href="admin.aspx" class="navLink">Products</a>
</asp:Panel>
</div>
<br /><br />
<div class="subMenu">
<a href="products.aspx" class="subLink">Products</a> <a href="productCats.aspx" class="subLink">Categories</a>
</div>
<br /><br />
Welcome to the Admin
<br /><br />
<asp:label id="debugLabel" runat="server" />
</form>
</body>
</html>
调试标签拒绝改变它的值,我希望它显示“WORKING”作为文本,我做错了什么?
更新
尝试构建时,我遇到3个错误:
错误1输入'****** ._ Default'已定义一个名为'Page_Load'的成员,其参数类型相同\ Default.aspx.cs 12 24
x3但在不同的页面上
答案 0 :(得分:3)
编辑:
好的,你去吧。您有一个Default.aspx页面,Admin-Page最有可能从中复制。
public partial class _Default : System.Web.UI.Page
因此,如果您需要此Default-Page中的某些基本函数,则需要从此页面继承。然后改变它:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="admin.aspx.cs" Inherits="_Default" title="Administration" %>
如果不是这样的话......(假设页面的类被调用为它的文件......)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="admin.aspx.cs" Inherits="Admin" title="Administration" %>
更改您的代码......
// Get the menu ID
if (!int.TryParse(menuIDdata, out menuID))
{
menuID = 0;
}
由于TryParse
正在使用输出参数返回已解析的整数。
答案 1 :(得分:0)
在代码上放置一个调试器,你会发现代码永远不会到达“debugLabel.Text =”WORKING“; “由于在它之前发生了一些异常,代码行。你将文本分配给标签的方式绝对没有问题
答案 2 :(得分:0)
try
{
string menuIDdata = Page.Request.QueryString["mid"];
menuID = 0;
// Check the user is allowed here
if (!Roles.IsUserInRole("Admin")) Then
{
Response.Redirect("../default.aspx");
}
// Get the menu ID
if (int.TryParse(menuIDdata, out menuID))
{
menuID = int.Parse(menuIDdata);
}
else
{
menuID = 0;
}
}
catch { }
debugLabel.Text = "WORKING";
var selectedMenu = this.Page.FindControl("mnu" + menuID) as Panel;
selectedMenu.CssClass = "navButtonO";
答案 3 :(得分:0)
这一行:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="admin.aspx.cs" Inherits="*******._Default" title="Administration" %>
困惑我。你有一个名为admin.aspx.cs的文件,其公共类名为******* ._默认?这是一个非常不寻常的惯例。也许这个页面继承的代码隐藏引用或类名是不正确的。