Перехват события selectindexbound в выпадающем списке внутри ретранслятора - PullRequest
0 голосов
/ 15 апреля 2020

На моей странице есть элемент управления повторителем, который используется для отображения товаров в корзине. В разделе количества у меня есть выпадающий список, который заполняется на основе данных элемента (в зависимости от того, сколько элементов доступно). Пока все хорошо.

По какой-то причине я не могу запустить событие selectedvaluechanged. Я пробовал несколько способов заставить его работать.

<asp:Repeater ID="rptTimes" runat="server">
    <ItemTemplate>
                <div class='CartItem'>
                    <div class='ShoppingCartImage'> 
                        <img src='/Images/Products/<%#DataBinder.Eval(Container.DataItem, "_image")%>' alt="<%#DataBinder.Eval(Container.DataItem, "_name")%>" />
                    </div>
                    <div class='ShoppingCartName'>
                        <%#DataBinder.Eval(Container.DataItem, "_name")%><br />
                        <span class="BasketLeastAm"><%=StaticTranslator.TranslateWord("Minsta antal", lang)%> &nbsp; <%#DataBinder.Eval(Container.DataItem, "_LeastAmount")%></span>
                    </div>
                    <div class='ShoppingCartPrice'>
                        <%#DataBinder.Eval(Container.DataItem, "_price")%> KR / <%#DataBinder.Eval(Container.DataItem, "_unit")%>
                    </div>
                    <div class='ShoppingCartAmount'>

                        <asp:DropDownList runat="server" EnableViewState="false" OnSelectedIndexChanged="ddlList_SelectedIndexChanged" ID="ddlAmount" AutoPostBack="true"></asp:DropDownList>
                    </div>
                    <div class='ShoppingCartPartSum'>
                        <%#CalcPartSum(DataBinder.Eval(Container.DataItem, "_price"), DataBinder.Eval(Container.DataItem, "_amount"))%> KR
                    </div>
                    <div class='ShoppingCartCancel'>
                        <asp:ImageButton style="float:left;" ID="ImageButton1" OnCommand="Btn_Click_Delete" CommandName="delete" CommandArgument='<%#DataBinder.Eval(Container.DataItem, "_id").ToString%>' ImageUrl="./Images/Siteimages/kryss.svg" runat="server" />
                    </div>
                </div>

            </ItemTemplate>
        </asp:Repeater>



Protected Sub rptTimes_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles rptTimes.ItemDataBound

        Dim myItem As Basketitem = DirectCast(e.Item.DataItem, Basketitem)
        Dim myLowest As Integer = myItem._LeastAmount

        Dim ddlList As DropDownList = e.Item.FindControl("ddlAmount")

        For i As Integer = myLowest To 100
            ddlList.Items.Add(New ListItem With {.Text = i.ToString, .Value = myItem._id})
        Next

    End Sub

    Public Sub ddlList_SelectedIndexChanged(sender As Object, e As EventArgs)

        Dim myList As List(Of Basketitem) = Session("Basket")
        Dim SelectedID As Integer = DirectCast(sender, DropDownList).SelectedValue

        For Each x In myList
            If x._id = SelectedID Then
                x._amount = CInt(DirectCast(sender, DropDownList).SelectedItem.Text)
            End If
        Next

        Session("Basket") = myList


    End Sub

Все работает, кроме события selectindexchange, которое не запускается. Какую часть я пропускаю?

...