我正在重新实现一个包含用户控件的主页面(称为“MyMainPage”)的ASP.NET应用程序。 (称之为“MyNavControl”)在该用户控件中是由第三方提供的菜单控件。添加到此第三方控件的项目具有传递URL的“Href”属性。创建菜单子项的代码包含在.ascx for MyNavControl的代码隐藏中,如下所示:
ThirdParty.MenuItem subitem = new ThirdParty.MenuItem();
subitem.Href="MyMainPage.aspx?_page=PremiumCustomer&_title=Premium";
MyMainPage还包含一个表示页面主体大部分的用户控件。我们称之为MainBodyControl.ascx。主页面的Page_Load()设置一些会话值,这些值在Page_Load()中用于MainBodyControl。
单击主页面上的菜单项时,主页面的Page_Load()将传递菜单项控件的“Href”值中指定的参数。所以:
protected void Page_Load(object sender, System.EventArgs e)
{
string sPageType = "";
if (this.Request[ "_page" ] != null) {
sPageType = this.Request[ "_page" ].ToString();
}
}
这是我的问题:我正在使用标准ASP.NET控件替换第三方控件,因此无法再使用当前的“Href”属性机制。在分配给菜单项的click事件的一些JavaScript中,为上面的“_page”或“_title”设置新值的最佳方法是什么。
答案 0 :(得分:2)
你可以写
<asp:MenuItem NavigateUrl="MyMainPage.aspx?_page=PremiumCustomer&_title=Premium"
Text="Click here!" />