我曾经将UpdatePanel作为整个Listview项的包装器。这是一个不正确的AJAX逻辑。
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:ListView ID="ListView1" runat="server">
<LayoutTemplate>
<asp:PlaceHolder id="itemPlaceholder" runat="server" />
</LayoutTemplate>
<ItemTemplate>
'....
</ItemTemplate>
</asp:ListView>
</ContentTemplate>
<Triggers></Triggers>
</asp:UpdatePanel>
所以我决定我应该只使用更新面板包装ImageButtons组,如下所示......
<asp:ListView ID="ListView1" runat="server">
<LayoutTemplate>
<asp:PlaceHolder id="itemPlaceholder" runat="server" />
</LayoutTemplate>
<ItemTemplate>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always" RenderMode="Block">
<ContentTemplate>
<asp:ImageButton ID="btnContainsError" runat="server"/>
<asp:ImageButton ID="btnAttach" runat="server" CommandName='<%# "AddC_" & DataBinder.Eval(Container.DataItem, "QID") & "_" & DataBinder.Eval(Container.DataItem, "Label") %>'/>
<asp:ImageButton ID="btnFavorite" runat="server" CommandName='<%# "AddF_" & DataBinder.Eval(Container.DataItem, "QID") & "_" & DataBinder.Eval(Container.DataItem, "Label") %>'/>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Image ID="btnStar" runat="server" ImageUrl="~/Images/star.png" Visible='<%# DataBinder.Eval(Container.DataItem, "InT") %>' />
</ItemTemplate>
</asp:ListView>
现在我收到了'DataItem' is not a member of 'System.Web.UI.Control'.
错误。
那我在这里做错了什么?
答案 0 :(得分:1)
尝试使用
<%# Eval( "field" ) %>
速记
答案 1 :(得分:-1)
我不知道这是否可以解决您的问题,但请考虑一下:
替换:Binder.Eval(Container.DataItem, "Field_NAME")
只有这个:Eval("Field_NAME")