2011-03-31 44 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

相关问题