2017-05-08 49 views
1

我正在處理產品購物車頁面。以下是我正在使用的代碼。在列表視圖中,我將所有產品圖像作爲按鈕。我想在點擊列表視圖中的任何圖像時更新傳送帶。防止刷新頁面上的列表視圖按鈕點擊asp .net

但是,當我點擊圖片的頁面刷新,我嘗試使用更新面板,但由於按鈕是動態的無法找到正確的方式來處理它。

<div class="col-md-8 single-top-in simpleCart_shelfItem"> 
        <div style="align-content: center"> 
         <strong>CLICK THE IMAGE TO SELECT </strong> 
        </div> 

        <asp:ListView ID="ImagesList" runat="server" 
         DataKeyNames="ID" 
         GroupItemCount="14" 
         OnPagePropertiesChanging="ImagesList_PagePropertiesChanging" class="data" OnSelectedIndexChanged="OnSelectedIndexChanged"> 
         <EmptyDataTemplate> 
          No Images found. 
         </EmptyDataTemplate> 
         <LayoutTemplate> 
          <table> 
           <tr runat="server" id="groupPlaceholder" /> 
          </table> 
         </LayoutTemplate> 
         <GroupTemplate> 
          <tr> 
           <td runat="server" id="itemPlaceholder" /> 
          </tr> 
         </GroupTemplate> 
         <ItemTemplate> 
          <td> 
           <div class="data" data-image='<%#"assets/products/"+Eval("ImageUrl").ToString() %>' 
            data-name='<%# Eval("Description") %>' data-price='<%# Eval("Price") %>' 
            data-image1='<%#"assets/products/1_"+Eval("ImageUrl").ToString() %>' 
            data-image2='<%#"assets/products/2_"+Eval("ImageUrl").ToString() %>'> 

            <asp:LinkButton ID="GridBtn" runat="server" CssClass="myButton" 
             CommandName="Change" 
             OnCommand="btnDetails_Command" 
             CommandArgument='<%# Eval("Notes") %>'> 

            <img src='<%#"assets/products/"+Eval("ImageUrl").ToString() %>' class="image" style="width: 50px; height: 50px" alt="Change" /></asp:LinkButton> 

           </div> 
          </td> 
         </ItemTemplate> 
        </asp:ListView> 
       </div> 

        <div class="col-md-4 single_left pull-left left"> 
        <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
         <ContentTemplate> 
          <fieldset> 
           <div class="flexslider"> 
            <ul class="slides"> 
             <li id="image3" data-thumb=""> 
              <%--<img id="image3" src="assets/products/1_ZP244.jpg" />--%> 
              <img id="image" src="assets/products/1_ZP244.jpg" /> 
              <%-- <asp:Image ID="image" src="assets/products/1_ZP244.jpg" runat="server" />--%> 
             </li> 
             <li id="image4" data-thumb=""> 
              <%--<img id="image4" src="assets/products/1_ZP244.jpg" />--%> 
              <img id="image1" src="assets/products/1_ZP244.jpg" /> 
              <%--<asp:Image ID="image1" src="assets/products/1_ZP244.jpg" runat="server" />--%> 
             </li> 
             <li id="image5" data-thumb=""> 
              <%--<img id="image5" src="assets/products/1_ZP244.jpg" />--%> 
              <img id="image2" src="assets/products/1_ZP244.jpg" /> 
              <%--<asp:Image ID="image2" src="assets/products/1_ZP244.jpg" runat="server" />--%> 
             </li> 
            </ul> 
           </div> 
          </fieldset> 
         </ContentTemplate> 
         <Triggers> 
          <asp:AsyncPostBackTrigger ControlID="btnSubmit" /> 
         </Triggers> 
        </asp:UpdatePanel> 
     </div> 


    <script> 
      $(".data").mouseover(function() { 
       var image = $(this).attr('data-image'); 
       var image1 = $(this).attr('data-image1'); 
       var image2 = $(this).attr('data-image2'); 
       var name = $(this).attr('data-name'); 
       var price = $(this).attr('data-price'); 

       var btnID = $(this).attr('ID'); 
       $(".left").find('#image').attr('src', image); 
       $(".left").find('#image1').attr('src', image1); 
       $(".left").find('#image2').attr('src', image2); 
       $(".left").find('#image3').attr('data-thumb', image); 
       $(".left").find('#image4').attr('data-thumb', image1); 
       $(".left").find('#image5').attr('data-thumb', image2); 
       $(".left").find('#name').text(name); 
       $(".left").find('#price').text(price); 

       $(".left").find('#price').text(price); 
      }) 
     </script> 
+0

你可以創建一個'WebMethod'並通過AJAX調用它來獲取數據和然後更新您的字段。 – vikscool

回答

1

您可以將UpdatePanel內註冊異步回發按鈕,通過該按鈕添加一個新的OnPreRender事件:

protected void btnReloadQty_PreRender(object sender, EventArgs e) 
{ 
    ScriptManager scriptMan = ScriptManager.GetCurrent(this.Page); 
    scriptMan.RegisterAsyncPostBackControl((LinkButton)sender); 
}