2014-05-06 4 views
1

Вот моя структура кода.Источник данных репитера Не ​​работает

Repeater Markup:

<asp:Repeater runat="server" ID="RPMenu" DataSource='<%# Menues.GetAllMainMenu() %>'> 
    <ItemTemplate> 
      <%# Eval("MenuName") %><br /> 

      <asp:Repeater runat="server" ID="RPMenuUnder" DataSource='<%# Menues.GetAllMainMenu(Convert.ToInt32(Eval("MenuID"))) %>'> 
       <ItemTemplate> 
        <%# Eval("MenuName") %><br /> 
       </ItemTemplate> 
      </asp:Repeater> 
    </ItemTemplate> 
</asp:Repeater> 

Меню Класс:

public static List<Menu> GetAllMainMenu(int parrentID = 0) 
{ 
    using (Scooterfrøen_Entities db = new Scooterfrøen_Entities()) 
    { 
     return db.Menu.Where(i => i.ParentMenuID == parrentID).ToList(); 
    } 
} 

База данных таблицы: MenuID | MenuName | Меню | ParrentMenuID | MenuUrl

У меня есть несколько строк, где ParentMenuID IS 0 и NOT NULL.

Но по какой-то причине Repeater control ничего не перечисляет на сайте.

Что может быть причиной того, что управление ретрансляторами ничего не показывает?

+0

, что этот класс вы используете 'Scooterfrøen_Entities'? – Hassan

+0

Вы отлаживали код, чтобы узнать, возвращаете ли вы данные? –

+0

@HassanNisar Это моя строка привязки структуры Entity к моей базе данных. –

ответ

0

Я думаю, что страница по-прежнему требует связывания, даже если вы предоставили источник данных в разметке. Написать Page.DataBind(); в вашем случае загрузки страницы:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Page.DataBind(); 
} 

Как использовать вложенную Repeater:
Кажется, вы должны обрабатывать ParentRepeater_ItemDataBound события, чтобы связать контроль ретранслятора ребенка.

Оформить заказ на эту статью here.

0

Вы должны установить значение и привязку ретранслятор

RPMenu.DataSource=<value you want to set>; 
RPMenu.DataBind(); 
Смежные вопросы