如何修复“数据绑定方法,如Eval(),XPath()和Bind()只能在数据绑定控件的上下文中使用。”

时间:2010-05-04 20:23:43

标签: asp.net data-binding user-controls

我有一个用户控件(ascx),我已经添加了两个公共属性:RequestTypeId和GroupId。两者都设置了Bindable(True)属性。

在我的aspx页面中,我有一个ListView,在ItemTemplate中,我放置了我的控件引用,如下所示:

    <asp:ListView ID="lv" runat="server">
        <LayoutTemplate>
            <asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
        </LayoutTemplate>
        <ItemTemplate>
           <tr>
              <td>
                 <ctrl:ServiceTypeGroup id="ctrlServiceTypes" runat="server" RequestTypeId="<%#RequestType.RequestTypeId%>" GroupId='<%#Eval("Id")%>' />
              </td>
           </tr>
        </ItemTemplate>
    </asp:ListView>

设置RequestTypeId工作正常。设置GroupId失败,并显示以下错误:

“Eval(),XPath()和Bind()等数据绑定方法只能在数据绑定控件的上下文中使用。”

我需要对用户控件代码做什么才能将Eval()表达式绑定到其中一个属性?或者是不可能的?

1 个答案:

答案 0 :(得分:0)

您可以为用户控件提供一些属性,例如[Bindable(true)]。

您是否已将此添加到相关媒体中?它看起来像这样:

[Bindable(true)]
public int RequestTypeID { get; set; }

[Bindable(true)]
public int GroupID { get; set; }

您需要在顶部显示以下内容:

using System.ComponentModel;

更多信息: