2017-07-12 6 views
0

私はコードでMainItemsでいっぱいMenuコントロール、持っている: -ASPメニューNavigateUrl空

<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); 
} 

それぞれの上にマウスを置きますメニュー項目は完全に無関係のURLを表示します。つまり、すべての項目に同じURLが表示されるため、OnClickイベントでデバッグしました: -

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

e.Item.Textは正しい値を持ちますが、すべてのNavigateUrl値は ""です。 誰かが私が逃したものを見つけることができますか?

答えて

0

コンストラクタMenuItem(String, String)は、新しいMenuItemTextValueのプロパティを設定します。 TextNavigateUrlプロパティが設定されます。

代わりの

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

はグレート

newSubMenuItem = new MenuItem(c1.Text); 
newSubMenuItem.NavigateUrl = ci.NavigateUrl; 
+0

を試してみてください、ありがとうございました。それはそれを修正する。 –

関連する問題