2011-04-10 51 views
0

我曾经将UpdatePanel作为整个Listview项目的包装器。作为AJAX逻辑,这是不正确的。BC30456:'DataItem'不是'System.Web.UI.Control'的成员

<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'.错误。

那么我在这里做错了什么?

回答

1

尝试使用

<%# Eval("field") %> 

速记

-1

我不知道这是否可以解决您的问题或没有,但考虑这一点:

替换:Binder.Eval(Container.DataItem, "Field_NAME")

与只是这个:Eval("Field_NAME")

相关问题