2014-10-10 72 views
2

我已經創建了一個動態菜單。在動態生成的菜單中獲取SelectedItem的ID

這裏是我的表結構:

MenuItemId  int  PrimaryKey 
MenuItemName nvarchar(50) 
ParentId  int 
NavigateURL  nvarchar(500) 

下面是C#代碼來獲得在Heirarchical結構數據:

private void GetMenuItems() 
{ 
    string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; 
    SqlConnection con = new SqlConnection(cs); 
    SqlDataAdapter da = new SqlDataAdapter("spGetMenuData", con); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 

    foreach (DataRow dr in ds.Tables[0].Rows) 
    { 
     if (dr["ParentID"].ToString().Trim() == "") 
     { 
      MenuItem item = new MenuItem(); 
      item.Text = dr["MenuItemName"].ToString(); 
      item.NavigateUrl = dr["NavigateUrl"].ToString(); 

      foreach (DataRow drChild in ds.Tables[0].Rows) 
      { 
       if (drChild["ParentID"].ToString() == dr["MenuItemID"].ToString()) 
       { 
        GetChildItems(ds, drChild, item); 
       } 
      } 

      Menu1.Items.Add(item); 
     } 
    } 

} 

private static void GetChildItems(DataSet ds, DataRow dr, MenuItem item) 
{ 
    MenuItem childItem = new MenuItem(); 
    childItem.Text = dr["MenuItemName"].ToString(); 
    childItem.NavigateUrl = dr["NavigateUrl"].ToString(); 

    foreach (DataRow drChild in ds.Tables[0].Rows) 
    { 
     if (drChild["ParentID"].ToString() == dr["MenuItemID"].ToString()) 
     { 
      GetChildItems(ds, drChild, childItem); 
     } 
    } 

    item.ChildItems.Add(childItem); 
} 

這裏是我的HTML:

<asp:Menu ID="Menu1" runat="server" DataSourceID="" BackColor="#B5C7DE" DynamicHorizontalOffset="2" Font-Names="Verdana" 
    Font-Size="0.8em" ForeColor="#284E98" StaticSubMenuIndent="10px" BorderStyle="Groove" BorderColor="WhiteSmoke" DynamicMenuStyle-BorderStyle="Outset"> 
    <DynamicHoverStyle BackColor="Red" ForeColor="White" /> 
    <DynamicMenuItemStyle HorizontalPadding="15px" VerticalPadding="10px" /> 
    <DynamicMenuStyle BackColor="#99ff99" /> 
    <DynamicSelectedStyle BackColor="Green" /> 
    <StaticHoverStyle BackColor="Blue" ForeColor="White" /> 
    <StaticMenuItemStyle HorizontalPadding="10px" VerticalPadding="10px" /> 
    <StaticMenuStyle BackColor="#ff6699" /> 
    <StaticSelectedStyle BackColor="Green" /> 
</asp:Menu> 

現在我想從該菜單中獲取selectedItem的MenuItemId。

有人可以告訴我我怎麼能得到相同的?

謝謝。

回答

0

這應該這樣做。

string s = Menu1.SelectedValuePath=ID;

+0

感謝您回答我的第一個問題。我的菜單位於MasterPage內。無論您打電話如何,我都需要ContentMetal的HTML或Designer中SelectedMenuItem的Id值。你能告訴我如何得到它? – 2014-10-10 15:19:40

+0

@ChavdaVineet你想使用html信息獲取selectedmenuitem的id?並沒有使用ASP.NET屬性?我對你試圖做的事情有點困惑。 – user3267755 2014-10-10 17:59:51

+0

@ user3267755是的,ChavdaVineet是我的朋友。我們兩個都在爲同樣的問題而苦苦掙扎。我們不想使用HTML,而是使用某種標記語言,例如在asp.net中使用的HTML。我認爲它的ASP.NET屬性。但是,你可以發佈一個有效的示例代碼,以便我們可以從中學習。 – Vishal 2014-10-10 19:30:15