2011-08-20 32 views
1

从一个ObjectData Source显示图像的问题添加iems到列表的T)类。 ObjectData Source然后成为Gridviews数据源。除图像外,所有其他字段都正在显示。从asp.net使用vb中的列表(T)创建的ObjectData中显示图像GridView中的图像使用vb

这里是我的代码:

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 

我在我的图像渲染页面( “GetAutoDealerLogo.aspx”)代码工作。我通过在其他页面上显示图像来测试它。此时的代码在CarImage.ImageUrl =“GetAuctionPageImage.aspx?ID =”& AuctionID行上获取NullReferenceException。我试过各种方法来解决这个问题,但图像仍然不显示在gridview中。

任何建议都会被处理。 在此先感谢

回答

0

我认为你会更好使用Repeater控制。这样,您可以定义绑定数据源中每个记录的控件和布局。对于您的问题,您可以添加一个ASP.NET Image控件并绑定到该控件。我只是第一次使用Repeater控件,而且我以同样的方式绑定到List(Of),绑定数据,控制布局等是一件轻而易举的事情。

+0

谢谢,我对Repeater控件不熟悉,所以我研究了一下,现在我的页面正在工作。表格属性也使它看起来比gridview好很多。真棒发现! – Matt

相关问题