2014-09-11 8 views
0

제품 가격을 표시 할 수있는 목록보기가 있습니다. ItemTemplate에 updatePanel을 넣습니다. contentTemplate의 버튼을 클릭하면 평가 필드가 업데이트되지 않습니다. 정의에 따라 업데이트 패널이 부분 포스트 백을 수행하지만 데이터베이스 변경 내용을 반영하지 않습니다. updatePanel에서 Listview Item Eval 필드가 업데이트되지 않는 이유는 무엇입니까?

  <ContentTemplate> 
      <asp:ImageButton ID="productPic" runat="server" Height="270" Width="202" ImageUrl='<%# Eval("ImageUrl") %>' /> 

      <asp:Table ID="ColorTable" runat="server" EnableViewState="true"></asp:Table> 
      <asp:Button ID="Button1" runat="server" Text="Button" /> 
      <asp:Literal ID="LitProductId" runat="server" Text='<%# Eval("ProductId") %>' EnableViewState="true"></asp:Literal> 
      <asp:Label ID="Label2" runat="server" Text='<%# Eval("Name") %>' Font-Size="8" 
            Font-Bold="False" Font-Names="tahoma" /> 
      <br /> 
      <asp:Label ID="Label3" runat="server" Text='<%# Eval("Price","{0:0,0}") %>' Font-Size="8" Font-Bold="False" Font-Names="tahoma" 
            Font-Strikeout='<%# Eval("DiscountedPrice")!=DBNull.Value %>' /> 
      <br /> 
      <asp:Label ID="Label4" runat="server" Text='<%# Eval("DiscountedPrice","{0:0,0}") %>' Font-Size="10" Font-Bold="True" Font-Names="tahoma" ForeColor="Red" 
            Visible='<%# Eval("DiscountedPrice")!=DBNull.Value %>' /> 
      <br /> 
    </ContentTemplate> 
</asp:UpdatePanel> 
<br /> 
    </td> 

난 어떤 도움을 주셔서 감사합니다.

답변

0

해결책을 찾았습니다. listview에서 업데이트 패널을 사용하려면 코드 페이지로드시 데이터 소스를 바인딩해야합니다.

ListView1.DataSource = new ProductFacade().GetCat3ProductListSpec(cat3Id); 
ListView1.DataBind(); 

sqlDataSource 특성을 사용하면 업데이트 패널이 예상대로 작동하지 않습니다.

0

역동적으로 추가하기 때문입니다. 다시 게시하면 해당 상태가 사라지고 해당 시점에 다시 추가하지 않으면 (즉, 뷰 스테이트에 저장하고 다시로드 할 때) 그것들은 더 이상 그들이 존재한다는 것을 알지 못한다.

+0

좋아, 어떤 경우에 단추를 다시 만들어야합니까? 실제로 ItemDataBound 이벤트에 있지만 updatepanel 포스트 백에서 실행되지 않습니다. – Babak

+0

updatePanel이 자동으로 필드를 업데이트하지 않습니까? 아니면 코드로해야합니까? – Babak