2011-03-31 61 views
0

我開發了一個usercontrol,但我似乎無法找到如何在detailsview中的usercontrol的屬性上進行數據綁定。在DetailsView的UserControl的屬性上的數據綁定

的屬性定義是這樣的:

<Bindable(True, BindingDirection.TwoWay)> 
Public Property Value As String 
    Get 
     Return combobox.SelectedValue 
    End Get 
    Set(value As String) 
     combobox.SelectedValue = value 
    End Set 
End Property 

我在我的個人信息綁定的看法是這樣做的方法:

<myctls:DropDown runat="server" 
       ID="ctlSupplier" 
       Value='<%#Bind("supplier_id") %>' /> 

每當我試着數據綁定,我得到以下異常:

數據綁定方法如Eval(), XPath()和Bind()只能使用 在數據綁定控件的上下文中。

任何人有任何想法,如何使它可能綁定一個usercontrol的屬性?

* 編輯1:增加DetailsViewCode和對象數據源*

<asp:DetailsView runat="server" ID="dvMain" DataSourceID="odsReception" AutoGenerateRows="false" GridLines="None" DefaultMode="Edit"> 
    <Fields> 
    <asp:TemplateField HeaderText="Supplier"> 
     <ItemTemplate> 
     <myctls:DropDown runat="server" ID="ctlSupplier" Width="255" Value='<%#Bind("supplier_id") %>' />                              
     </ItemTemplate> 
    </asp:TemplateField> 

    [... bunch of fields ...] 
    </Fields> 
</asp:DetailsView> 

<asp:ObjectDataSource runat="server" ID="odsReception" DeleteMethod="Delete" 
     InsertMethod="Insert" SelectMethod="Select" 
     TypeName="DataAccess.Reception" 
     UpdateMethod="Update"> 

    <SelectParameters> 
     [... Bunch of parameters ...] 
    </SelectParameters> 

    [... Parameters for other methods ...] 
</asp:ObjectDataSource> 

回答

1
Protected Sub DetailsView1_DataBound(ByVal sender As Object, ByVal e As EventArgs) Handles DetailsView1.DataBound 

      Dim drv As DataRowView = CType(DetailsView1.DataItem,DataRowView) 
      Dim supplierId As String = CType(drv("supplier_id"),String) 
      Dim ctrl As MyUCControl = CType(DetailsView1.FindControl("ctlSupplier"),MyUCControl) 
      If (Not (ctrl) Is Nothing) Then 
       ctrl.Value = supplierId 
      End If 

    End Sub 

「需要

Imports System.Data 
+0

嗯......我知道我可以使用代碼隱藏數據綁定,但我尋找一種解決方案來使用aspx文件中的數據綁定。 – Martin 2011-03-31 17:28:19

+0

你的代碼也應該可以工作。可能是別的問題。你能不能分享你的DetailsView代碼? – gbs 2011-03-31 18:27:51

+0

最後,事實證明,我在我的控件中的代碼和我的detailsview之間有一個數據綁定衝突。一旦我糾正了錯誤,我的數據綁定代碼開始工作。 – Martin 2011-04-01 18:47:07

相關問題