2013-07-18 2 views
0

Я пытаюсь отобразить категории покупок с его подкатегориями и подкатегориями с помощью повторителя. Данные привязаны, но не отображаются. Может ли кто-нибудь помочь почему? вот мой код:Сложность при отображении данных с использованием ретранслятора

.aspx файл

<asp:Repeater ID="CategoryRepeater" runat="server" OnItemDataBound="CategoryRepeater_OnItemDataBound"> 
    <ItemTemplate> 
     <a href='Clothing.aspx?CategoryId=<%#Eval("CategoryId") %>'<%#Eval("CategoryName") %>></a><br /> 
     <asp:Repeater ID="SubCategoryRepeater" runat="server" OnItemDataBound="SubCategoryRepeater_OnItemDataBound"> 
      <ItemTemplate> 
        <a href='Clothing.aspx?CategoryId=<%#Eval("CategoryId") %>&SubCategoryId=<%#Eval("SubCategoryId") %>'<%#Eval("SubCategoryName") %>></a><br /> 
       <asp:Repeater ID="SubSubCategoryRepeater" runat="server"> 
        <ItemTemplate> 
         <a href='Clothing.aspx?CategoryId=<%#Eval("CategoryId") %>&SubCategoryId=<%#Eval("SubCategoryId") %>&SubSubCategoryId=<%#Eval("SubSubCategoryId") %>'<%#Eval("SubSubCategoryName") %>></a><br /> 
        </ItemTemplate> 
       </asp:Repeater> 
      </ItemTemplate> 
     </asp:Repeater> 

    </ItemTemplate> 
</asp:Repeater> 

C# Код:

protected void CategoryRepeater_OnItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if ((e.Item.ItemType == ListItemType.Item)||(e.Item.ItemType == ListItemType.AlternatingItem)) 
    { 
     DataRowView dataItem = e.Item.DataItem as DataRowView; 
     int categoryId = Convert.ToInt32(dataItem["CategoryId"]); 
     Repeater rp = (Repeater)e.Item.FindControl("SubCategoryRepeater"); 
     ds = us.SelectSubCategories(categoryId); 
     rp.DataSource = ds; 
     rp.DataBind(); 
    } 
} 

protected void SubCategoryRepeater_OnItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if ((e.Item.ItemType == ListItemType.Item)||(e.Item.ItemType == ListItemType.AlternatingItem)) 
    { 
     DataRowView dataItem = e.Item.DataItem as DataRowView; 
     int SubCategoryId = Convert.ToInt32(dataItem["SubCategoryId"]); 
     Repeater rp1 = (Repeater)e.Item.FindControl("SubSubCategoryRepeater"); 
     ds1 = us.SelectSubSubCategories(SubCategoryId); 
     rp1.DataSource = ds1; 
     rp1.DataBind(); 
    } 
} 

ответ

1

Проверьте исходный код, чтобы убедиться, что ничего не выводится на страницу. Я думаю, вы просто указали название категории внутри тега привязки.

Вот тот же код с Evals упрощенных, чтобы увидеть, что происходит на

<a href='Clothing.aspx?CategoryId={catid}'{name}></a> 

Должно быть:

<a href='Clothing.aspx?CategoryId={catid}'>{name}</a> 

или

<a href='Clothing.aspx?CategoryId=<%#Eval("CategoryId") %>'><%#Eval("CategoryName") %></a> 

же ошибка была сделана во всех трех местах.

+0

Извините, я отправил в то же время. Это должен быть правильный ответ, Манбир. – LUKE

+0

Thanx много .. :) – Manbir

1

Я думаю, что все правильно из кода, но ваш результат неправильный.

Вы делаете это:

<a href='Clothing.aspx?CategoryId=<%#Eval("CategoryId") %>&SubCategoryId=<%#Eval("SubCategoryId") %>'<%#Eval("SubCategoryName") %>></a><br /> 

Но это должно быть

<a href='Clothing.aspx?CategoryId=<%#Eval("CategoryId") %>&SubCategoryId=<%#Eval("SubCategoryId") %>'><%#Eval("SubCategoryName") %></a><br /> 

Заметил я переехал '>' назад за <% # Eval ("SubCategoryName")%>

+0

да .. спасибо .. я получил .. :) – Manbir

Смежные вопросы