как фильтровать данные элементов повторителя на основе radiobuttonlist в другом повторителе

#c# #asp.net #sql-server #linq #repeater

#c# #asp.net #sql-сервер #linq #повторитель

Вопрос:

У меня есть страница покупок, на которой я отображаю фильтры слева и сбоку, такие как категория, цена, цвет и т.д., и отображаю товары с правой стороны. Я использую ретранслятор для фильтрации данных, т.Е. использую radio buttonlist для фильтрации данных и пытаюсь фильтровать данные в другом ретрансляторе на основе radiobuttonlist в repeater1. это моя страница, я хочу фильтровать продукты на основе полуподкатегории

 <asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <td style="border-right:groove;">
            <h4>Semi Sub Category</h4>
            <asp:RadioButtonList ID="semiSubCat1" 
                 DataSource='<%# Eval("subquery1") %>'
                 DataTextField="semiSubCategoryName"
                 DataValueField="semiSubCategoryId" runat="server">
            </asp:RadioButtonList>
       </td>
    </ItemTemplate>
  </asp:Repeater>
  

Код позади

 protected void Page_Load(object sender, EventArgs e)
{        
    var Rquery = from p in dc.ProductDatas
                 select new
                 {
                     p.productId,
                     p.proName,
                     subquery1 = from ps in dc.SemiSubCategories
                                select new { 
                                ps.semiSubCategoryId,
                               ps.semiSubCategoryName,
                                },
                    subquery2 = from sp in dc.Sizes 
                                select new {
                                sp.sizeId,
                                sp.sizeNumber,
                                },
                 };
    Repeater1.DataSource = Rquery;
    Repeater1.DataBind();
}
protected void semiSubCat_SelectedIndexChanged(object sender, EventArgs e)
{
    if (semiSubCat.SelectedIndex > 0)
    {
        string query = string.Format("select * from ProductData join SemiSubCategory on ProductData.semiSubCategory equals SemiSubCategory.semiSubCategoryId where semiSubCategoryName == semiSubCat.SelectedItem.Value"
                                                                    , sender, e);
        query.ToList();
    }
}
  

Комментарии:

1. Когда semiSubCat_SelectedIndexChanged вы запрашиваете, но ничего не привязываете к ретранслятору, вам нужно привязать его обратно к ретранслятору. Также вам необходимо проверить код при загрузке страницы, так как он может сбросить значения вашего повторителя.

Ответ №1:

Попробуйте использовать событие onCheckedChanged

 protected void RadioButton_CheckedChanged(object sender, System.EventArgs e)
{
    
   //Filter

}
  

Комментарии:

1. я попробовал это с именем semisubcategory, пожалуйста, посмотрите