我希望你能帮助我。首先,我想告诉你我是一名桌面应用程序,这意味着我主要在桌面上开发我的应用程序。现在我正在尝试构建一些Web应用程序,但这会导致我无法确定是否出现混淆或只是做错了。asp.net内置运行时带有非现场链接的菜单
我在这里有一个代码,它在运行时填充菜单。运行时间,因为它们的菜单项在代码后面填充,并且项目在数据库中提取。
这里是后面的代码:在PopulateMenuControl
public void PopulateMenuControl(ref Menu menucontrol, int menuparentid)
{
//menucontrol.Items.Clear();
foreach (MenuFields mf in GetMenusByParentID(menuparentid))
{
MenuItem menuitem = new MenuItem(mf.MenuName, ReplaceSystemNameLink(mf.Link));
menucontrol.Items.Add(menuitem);
foreach (MenuFields cmf in GetMenusByParentID(mf.MenuID))
{
MenuItem childmenuitem = new MenuItem(cmf.MenuName, ReplaceSystemNameLink(cmf.Link));
menuitem.ChildItems.Add(childmenuitem);
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Menus menu = new Menus();
imgMainLogo.ImageUrl = VARIABLES.MainLogoImage;
menu.PopulateMenuControl(ref mainmenu, 2);
menu.PopulateMenuControl(ref footermenu, 9);
}
else
{
System.Diagnostics.Debug.WriteLine("link: " + footermenu.SelectedValue);
if (footermenu.SelectedValue != null)
{
Response.Redirect(footermenu.SelectedValue, true);
}
}
}
和代码,以便Page.IsPostBack
是在做一个页面的东西时,我应该学习的非常基本的东西。但这里的问题是,我在“footermenu”中的一个菜单项有一个非现场链接,它应该将页面重定向到我的博客..但是发生了什么事情,footermenu.SelectedValue
是空的,一旦我点击“博客”链接。
发生了什么事?
UPDATE
我已经更新了代码仍然卡住了,的SelectedValue仍是空的
protected void Page_Load(object sender, EventArgs e) { System.Diagnostics.Debug.WriteLine("Page_Load IsPostBack: " + Page.IsPostBack.ToString()); if (Page.IsPostBack) { if(footermenu.SelectedValue != null) { System.Diagnostics.Debug.WriteLine("link: " + footermenu.SelectedValue); } } } protected void Page_Init(object sender, EventArgs e) { System.Diagnostics.Debug.WriteLine("Page_Init IsPostBack: " + Page.IsPostBack.ToString()); if (!Page.IsPostBack) { Menus menu = new Menus(); imgMainLogo.ImageUrl = VARIABLES.MainLogoImage; menu.PopulateMenuControl(ref mainmenu, 2); menu.PopulateMenuControl(ref footermenu, 9); } }
通过使用“Page_PreRender”得到它的工作 – jaysonragasa 2011-05-22 11:29:41