BC30456:'DataItem'不是'System.Web.UI.Control'的成员

时间:2011-04-10 11:27:55

标签: .net asp.net listview updatepanel

我曾经将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'.错误。

那我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

尝试使用

<%# Eval( "field" ) %>

速记

答案 1 :(得分:-1)

我不知道这是否可以解决您的问题,但请考虑一下:

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

只有这个:Eval("Field_NAME")