ASP菜单NavigateUrl为空

时间:2017-07-12 05:48:48

标签: c# asp.net menu navigateurl

我有一个Menu控件,我在代码中填充了MainItems: -

  <asp:Menu ID="Menu1" runat="server" Font-Names="Calibri" Font-Size="1em" BorderColor="#CC6600" BorderStyle="Solid" BorderWidth="1px" ClientIDMode="AutoID" ForeColor="Black" OnMenuItemClick="Menu1_MenuItemClick">
    <DynamicHoverStyle BackColor="#FF9900" />
    <Items>
    <asp:MenuItem Text="Project Management" Value="Project Management">/asp:MenuItem>
    <asp:MenuItem Text="Quality" Value="Quality"></asp:MenuItem>
    <asp:MenuItem Text="Training" Value="Training"></asp:MenuItem>
    <asp:MenuItem Text="Sales" Value="Sales"></asp:MenuItem>
    <asp:MenuItem Text="Administration" Value="Administration"></asp:MenuItem>
    <asp:MenuItem Text="Maintenance" Value="Maintenance"></asp:MenuItem>
    </Items>
    </asp:Menu></td>

然后从SQL表中读取子项:

while (rdr.Read())
{
ThisGroup = rdr.GetInt16(0);
MenuItem homeMenuItem = new MenuItem();
MenuItem newSubMenuItem = new MenuItem();
ci.Text = (rdr.GetString(1));
ci.NavigateUrl = (rdr.GetString(2));
homeMenuItem = Menu1.Items[ThisGroup];
newSubMenuItem = new MenuItem(ci.Text, ci.NavigateUrl);
homeMenuItem.ChildItems.Add(newSubMenuItem);
}

将鼠标悬停在每个菜单项上会显示一个完全不相关的网址 - 所有项目都是相同的 - 所以我在OnClick事件中进行了调试: -

string testtext1;
string testtext2;
testtext1 = e.Item.Text;
testtext2 = e.Item.NavigateUrl;

事实证明,e.Item.Text具有正确的值,但所有NavigateUrl值都是&#34;&#34;。 谁能发现我错过的东西?

1 个答案:

答案 0 :(得分:0)

构造函数MenuItem(String, String)设置新Text的{​​{1}}和Value属性。您希望设置MenuItemText属性。

而不是

NavigateUrl

尝试

newSubMenuItem = new MenuItem(ci.Text, ci.NavigateUrl);