我希望你能幫助我。首先,我想告訴你我是一名桌面應用程序,這意味着我主要在桌面上開發我的應用程序。現在我正在嘗試構建一些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