2011-08-20 1 views
1

iems를 목록에 추가하는 함수로 만든 ObjectData Source의 이미지를 표시하는 데 문제가 있습니다. T의) 클래스. 그러면 ObjectData Source가 gridviews Data Soource가됩니다. 이미지를 제외하고는 다른 모든 필드가 표시됩니다. 내 이미지 렌더링 페이지 ("GetAutoDealerLogo.aspx")에서ObjectData에서 gridview에 이미지 표시 vp를 사용하여 asp.net의 목록 (T)으로 만든

Public Class AutoDealer 

Private mLogo As ImageButton 
Private mComapnyName As String 
Private mAddress As String 
Private mContactDetails As String 

Public Sub New() 

End Sub 

Public Sub New(ByVal Logo As ImageButton, ByVal CompanyName As String, ByVal Address As String, ByVal ContactDetails As String) 
    mLogo = Logo 
    mComapnyName = CompanyName 
    mAddress = Address 
    mContactDetails = ContactDetails 
End Sub 

Public Property Logo As ImageButton 
    Get 
     Return mLogo 
    End Get 
    Set(ByVal value As ImageButton) 
     mLogo = value 
    End Set 
End Property 

Public Property CompanyName As String 
    Get 
     Return mComapnyName 
    End Get 
    Set(ByVal value As String) 
     mComapnyName = value 
    End Set 
End Property 

Public Property Address As String 
    Get 
     Return mAddress 
    End Get 
    Set(ByVal value As String) 
     mAddress = value 
    End Set 
End Property 

Public Property ContactDetails As String 
    Get 
     Return mContactDetails 
    End Get 
    Set(ByVal value As String) 
     mContactDetails = value 
    End Set 
End Property 

Public Class DisplayAutodealers 
Public Shared Function GetAutodealers() As List(Of AutoDealer) 
    Dim Connection As SqlConnection = New SqlConnection(...) 
    Dim Command As SqlCommand = New SqlCommand() 
    Dim _Reader As SqlDataReader 

    Command.Connection = Connection 
    Command.CommandText = "Select ID, Company_Name, Physical_Address, Area_Code, Email_Address, Contact_Number from AutoDealer_Account" 
    Connection.Open() 
    _Reader = Command.ExecuteReader 

    Dim results As New List(Of AutoDealer) 
    While _Reader.Read() 
     Dim _AutoDealer As New AutoDealer 
     Dim AutoDealerID As Integer 

     AutoDealerID = _Reader(0) 

     _AutoDealer.Logo.ImageUrl = "GetAutoDealerLogo.aspx?ID=" & AutoDealerID 
     _AutoDealer.CompanyName = _Reader(1) 
     _AutoDealer.Address = _Reader(2) & ", " & _Reader(3) & "." 
     _AutoDealer.ContactDetails = "Phone: " & _Reader(5) & vbCrLf & " or email: " & _Reader(4) 

     results.Add(_AutoDealer) 
    End While 
    Connection.Close() 
    _Reader.Close() 

    Return (results) 

End Function 

내 코드가 작동 :

여기 내 코드입니다. 다른 페이지에 이미지를 표시하여 테스트했습니다. 이 코드는 현재 CarImage.ImageUrl = "GetAuctionPageImage.aspx? ID ="& AuctionID 라인에서 NullReferenceException을 얻고 있습니다. 이 문제를 해결하기 위해 다양한 방법을 시도했지만 이미지가 여전히 gridview에 표시되지 않습니다.

모든 조언이 감사하겠습니다. 미리 감사드립니다.

답변

0

리피터 컨트롤을 사용하는 것이 나을 것 같습니다. 그러면 바인딩 된 데이터 소스의 각 레코드에 대한 컨트롤과 레이아웃을 정의 할 수 있습니다. 귀하의 문제에 대한 ASP.NET 이미지 컨트롤을 추가하고 바인딩 할 수 있습니다. 처음에는 Repeater 컨트롤을 사용하고 있었고 같은 방법으로 List (Of)에 바인딩하고 있습니다. 데이터를 바인딩하고 레이아웃을 제어하는 ​​등의 작업이 편리합니다.

+0

감사합니다. Repeater 컨트롤에 익숙하지 않았으므로 조금 연구했고 페이지가 현재 작동 중입니다. 테이블 속성을 통해 표 모양이 Gridview보다 훨씬 좋아집니다. 굉장한 발견! – Matt

관련 문제