如何在updatePanel中不更新Listview Item Eval字段



我有一个列表视图来显示带有价格的产品。我在ItemTemplate中放入了一个updatePanel。当我单击contentTemplate中的按钮时,Eval字段不会更新,根据定义更新面板做了一个部分的postback,但它并没有反映数据库的变化。

         <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>

我感谢你的帮助。

这是因为你正在动态地将它们添加到中。当你发布时,它会丢失该状态,如果你当时没有将它们添加回中(即将它们保存到viewstate并在加载时添加回中),它就不再知道它们的存在。

我找到了解决方案。如果您想在列表视图中使用更新面板,您应该在代码页加载中绑定数据源。

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

当您使用sqlDataSource属性时,更新面板的功能不会如您所期望的那样。

最新更新