2010-05-04 51 views
2

我有已添加了兩個公共屬性的用戶控件(ASCX):RequestTypeId和的GroupId。兩者都有Bindable(True)屬性集。如何解決「數據綁定方法如eval()函數,XPath的(),並綁定()只能在數據綁定控件的上下文中使用。」

在我的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()表達式綁定的屬性之一?還是不可能?

+0

你能有休息的代碼?當標籤是數據綁定控件之外,但你的描述說,這裏面發生此錯誤。也許你錯過了如何設置ListView? – Yoenhofen 2010-05-04 20:55:35

+0

@Yoenhofen,我已經發布了一個例子的ListView。這有幫助,還是你需要更多的頁面? – slolife 2010-05-05 16:32:13

回答

0

有一些性質如[可綁定(真)],使用時可以給用戶控件。

您是否已將此項添加到相關屬性中?這將是這個樣子:

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

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

您將需要以下頂部:

using System.ComponentModel; 

的更多信息:

+0

是的,我確實有屬性Bindable(true),儘管從MSDN鏈接看,這聽起來像是在設計時使用的屬性,而不是運行時。但是這是在我的代碼中設置的,仍然不能解決問題。 – slolife 2010-05-04 21:23:13

相關問題