Mshareef880 Ответов: 0

Динамическое меню Персонализация успешно из базы данных с использованием ASP.NET в языке C#. Но когда страница переходит с одной страницы на другую ... ее привязка происходит не один раз.как исправить эту проблему


Вот мой код:

MasterPage.в CS:
--------------
protected void Page_Load(object sender, EventArgs e)
       {

                   GetMenuData(iUserType);

           }
       private void GetMenuData(int userType)
       {

           DataSet dsPermissions = new DataSet();
           DataTable table = new DataTable();


           BinAdapter BinAdap = new BinAdapter();
           dsPermissions=BinAdap.GetMenuDataList(userType);

           table = dsPermissions.Tables[0];
           DataView view = new DataView(table);
           view.RowFilter = "menu_parent_id is NULL";
           foreach (DataRowView row in view)
           {
               MenuItem menuItem = new MenuItem(row["menu_name"].ToString(),
               row["menu_id"].ToString());
               menuItem.NavigateUrl = row["menu_url"].ToString();
               menuBar.Items.Add(menuItem);
               AddChildItems(table, menuItem);
           }

       }
       private void AddChildItems(DataTable table, MenuItem menuItem)
       {
           DataView viewItem = new DataView(table);
           viewItem.RowFilter = "menu_parent_id=" + menuItem.Value;
           foreach (DataRowView childView in viewItem)
           {
               MenuItem childItem = new MenuItem(childView["menu_name"].ToString(),
               childView["menu_id"].ToString());
               childItem.NavigateUrl = childView["menu_url"].ToString();
               menuItem.ChildItems.Add(childItem);
               AddChildItems(table, childItem);
           }
       }


public DataSet GetMenuDataList(int UserType)

       {
           DataSet DatasetMenuData = new DataSet();
           try
           {
               if (dbConn == null)
               {
                   dbConn = CommonProcedures.GetConnection();
               }
               dbcmd = dbConn.GetStoredProcCommand("usp_GetUserPermissons");
               dbConn.AddInParameter(dbcmd, "@RoleID", DbType.Int32, UserType);

               DatasetMenuData = (DataSet)dbConn.ExecuteDataSet(dbcmd);
               return DatasetMenuData;
           }
           catch (Exception ex)
           {
               return DatasetMenuData;
           }
           finally
           {
               dbConn = null;
           }
       }


Что я уже пробовал:

Dynamic Menu Binds Successfully from database using asp.net in c#. But when page navigating from one page to another page..its binding more than once..how to fix this issue

ZurdoDev

Что вы подразумеваете под связыванием более одного раза? Вы хотите сказать, что GetMenuDataList вызывается дважды, когда вы нажимаете на ссылку? Если это так, то поставьте точку останова и просмотрите стек вызовов, чтобы увидеть, что его вызвало.

Mshareef880

@ZurdoDev хорошо, я проверю..
Спасибо за ответ.!

0 Ответов