且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

动态菜单创建.... asp.net

更新时间:2023-11-17 16:39:22

如果您将代码发布在这里,那会很好.随便....
在此示例中,我从XML文件中检索数据,创建数据集,然后将菜单项添加到Menu Control.
It would be fine if you post your code here. any way....
Here in this example i retrieve data from XML file, create a dataset then adding menu items to Menu Control.
<asp:menu id="MenuContent" runat="server" orientation="Vertical" cssclass="menustyle" xmlns:asp="#unknown">
</asp:Menu></asp:menu>


protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                EnableMenu();
            }
        }

        protected void EnableMenu()
        {
            DataSet ds = new DataSet();
            DataRowView drPView;
            DataRowView drCView;
            ds.ReadXml(ConfigurationSettings.AppSettings["XMLFile"].ToString());
            DataView dvParent = new DataView(ds.Tables[0]);
            DataView dvChild = new DataView(ds.Tables[1]);
            MenuItem oParentMenuItem = new MenuItem();
            MenuItem oChildMenuItem = new MenuItem();

            for (int i = 0; i < dvParent.Count; i++)
            {
                drPView = dvParent[i];
                oParentMenuItem = new MenuItem(drPView.Row.ItemArray["MenuCaption"].ToString(), drPView.Row.ItemArray["ParentId"].ToString());
                MenuContent.Items.Add(oParentMenuItem);
                dvChild.RowFilter = "ParentId=" + drPView.Row.ItemArray["ParentId"].ToString();
                for (int i = 0; i &lt; dvChild.Count; i++)
                {
                  drCView = dvChild[i];
                  oChildMenuItem  = new MenuItem(drCView.Row.ItemArray["MenuCaption"].ToString(), drCView.Row.ItemArray["ChildID"].ToString(), "", drCView.Row.ItemArray["MenuUrl"].ToString());
                  oParentMenuItem.Items.Add(oChildMenuItem);
                }
            }
        }


注意:请根据您的要求更改代码.通常,我会在此文本框中输入编码,因此,如果您有任何疑问/问题,请告诉我.


NOTE : Please change code based on your requirement. Mostly I typed coding in this textbox, so let me know if you have any doubt/issue.