Bu yorum aşağıda bir yorum yapılmadı, ama yanımızda kalması gerekecek galiba. Göndermeden önce yardım ararken aradığım kopyasını buldum. Buradaki açıklama, kopyadan daha fazla izlemem için daha kolaydı.Varsayılı üye bulunamadı Parcel
Aşağıdaki kodu çalıştırdığımda, ParcelsRepeater.DataSource = Split.Parcels komutunu çalıştırdıktan hemen sonra "Parcel türü için varsayılan üye bulunamadı" hatası alıyorum. Hata iletisi, aspx kodunda <% # Container.DataItem ("PIN")%> vurgulanıyor gibi görünüyor.
Hiçbir zaman ItemDataBound olayı vurmak gibi görünüyor.
<%#Container.DataItem("PIN")%>
Bu ParcelsRepeater_ItemDataBound
önce veri bağlama parçası olarak ele alınır olarak oluşur:
Imports System.Linq
Public Class SplitCreateParcels
Inherits System.Web.UI.Page
Public Class SplitParcel
Public Sub New()
Parcels = New List(Of Parcel)
End Sub
Public Property Parcels As List(Of Parcel)
End Class
Public Class Cat
Public Property Category As String
End Class
Public Class Parcel
Public Sub New()
Categories = New List(Of Cat)
End Sub
Public Property PIN As String
Public Property Categories As List(Of Cat)
End Class
Public Property _Split As SplitParcel
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim Split As New SplitParcel
Dim Parcel1 As New Parcel
Dim Parcel2 As New Parcel
Split.Parcels.Add(Parcel1)
Split.Parcels.Add(Parcel2)
Parcel1.PIN = "Test1"
Parcel1.Categories.Add(New Cat With {.Category = "1"})
Parcel1.Categories.Add(New Cat With {.Category = "2"})
Parcel2.PIN = "Test2"
Parcel2.Categories.Add(New Cat With {.Category = "3"})
Parcel2.Categories.Add(New Cat With {.Category = "4"})
ParcelsRepeater.DataSource = Split.Parcels
ParcelsRepeater.DataBind()
End Sub
Protected Sub ParcelsRepeater_ItemDataBound(sender As Object, e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
Dim ParentDataItem As Parcel = DirectCast(e.Item.DataItem, Parcel)
Dim ChildRepeater As Repeater = DirectCast(e.Item.FindControl("IntegerRepeater"), Repeater)
ChildRepeater.DataSource = ParentDataItem.Categories
ChildRepeater.DataBind()
End If
End Sub
End Class
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="SplitCreateParcels.aspx.vb" Inherits="UADWeb.SplitCreateParcels" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="ParcelsRepeater" runat="server" OnItemDataBound="ParcelsRepeater_ItemDataBound">
<ItemTemplate>
<%#Container.DataItem("PIN")%>
<asp:Repeater runat="server" ID="IntegerRepeater">
<ItemTemplate>
<%#Container.DataItem("Category")%></br>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
Olası yinelenen
ParcelsRepeater_ItemDataBound
ile. NET Tekrarlayıcı Hatası: xx için varsayılan üye bulunamadı] (http://stackoverflow.com/questions/9673445/asp-net-repeater-error-no-default-member-found-for-type-xx) –