0

Я использую панель диспетчера сценариев + панель обновления в раскрывающемся списке, поэтому, когда пользователь выбирает что-то из нее, страница не обновляется (это моя цель).OnSelectedIndexChanged раскрывающийся список без обновления страницы

Вот HTML код:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
<asp:ListView ID="listProducts" runat="server" DataKeyNames="ProductID" OnItemDataBound="listProducts_ItemDataBound" OnItemCommand="listProducts_ItemCommand"> 
      <ItemTemplate> 
       <div class="productoverlay"> 
        <div class="col-lg-4 proizvod"> 
         <div class="product"> 
          <div class="glow"></div> 
          <img src='<%# "../productimg/" + Eval("FileName")%>' alt='<%# Eval("ProductName") %>'/> 
         </div> 
        </div> 
        <div class="col-lg-1 price"> 
         <asp:Label ID="lblPrice" runat="server" Text=""></asp:Label> 
        </div> 
        <div class="col-lg-7 pushtop"> 
          <h1><%# Eval("ProductName") %></h1> 

         <p>Description: </p> 
         <p><%# Eval("ProductDescription") %></p> 
         <p>Quantity: </p><asp:TextBox ID="txtPackageQuantity" TextMode="Number" runat="server"></asp:TextBox>       
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
         <Triggers> 
          <asp:AsyncPostBackTrigger controlid="DropDownList1" eventname="SelectedIndexChanged" /> 
         </Triggers> 
         <ContentTemplate> 
          <asp:DropDownList ID="DropDownList1" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" runat="server"></asp:DropDownList> 
         </ContentTemplate> 
        </asp:UpdatePanel> 
         <asp:Button ID="Button1" runat="server" Text="Add to cart" CommandName="AddToCart" CommandArgument='<%# Eval("ProductID")%>'/> 
         </div> 
       </div> 
      </ItemTemplate> 
     </asp:ListView>  

И это код OnSelectedIndexChanged события:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      var ddl = sender as DropDownList; 
      var val = int.Parse(ddl.SelectedValue); 
      rlsp_PrCategories_ByID_Result pr = ServiceClass.ProductCatByID(val); 
      Label lblPrice = ddl.Parent.FindControl("lblPrice") as Label; 
      if(pr!=null) 
      lblPrice.Text = "$ " + pr.Price; 
     } 

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

Что я здесь делаю неправильно? Кто-нибудь может мне помочь?

P.S. Я только что проверил, запускается ли событие, когда пользователь что-то выбирает, и да, он срабатывает, но, похоже, я не вижу содержимого этого ярлыка (его не распечатано на странице) ...?

+0

Nevermind ... Я понял это ... Я должен был поставить метку в панели обновления также ... – perkes456

+0

я не использую UpdatePanels, но есть у попытался добавить: UpdatePanel1.Update() в конце обработчика selectedIndexChanged? – Legends

ответ

0

Сообщите обновленной панели обновления после внесения изменений, поскольку updatemode установлен в условное значение в разметке ur.

UpdatePanel1.Update()