ASP.netのGridViewを使用して、フォームを作成しようとしています。
自作クラスのリストをGridViewのデータソースに設定し
そのデータをバインドする方法でわからないことがあります。
以下にて処理を実行すると、「"UserName"は、データソースオブジェクトのプロパティではありません」とエラーが出ます。
何か設定が間違っているのでしょうか?ご教示お願い致します。
VS2008
言語=VB
■vb
'//ユーザーのクラス
Public Class UserInfo
Public UserName As String
Public PhoneNumber As String
End Class
'//ページAのデータ設定処理
Public Partial Class PageA
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim userData As UserInfo
Dim userList As New List(Of UserInfo)
userData = New UserInfo
userData.UserName = "山田太郎"
userData.PhoneNumber = "09012345678"
userList.Add(userData)
userData = New UserInfo
userData.UserName = "佐藤一郎"
userData.PhoneNumber = "09012345678"
userList.Add(userData)
GridViewUser.DataSource = userList
GridViewUser.DataBind()
End Sub
End Class
■aspx
<asp:GridView ID="GridViewUser" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="No">
<ItemTemplate>
<asp:Literal ID="no" runat="server" Text="<%# Container.DataItemIndex + 1 %>"></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="氏名">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("UserName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="電話番号">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("PhoneNumber") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
自己レスすみません。
クラスにプロパティ設定するだけでしたね。。
初歩的な質問で申し訳ありませんでした。
'//ユーザーのクラス
Public Class UserInfo
Public UserName As String
Public PhoneNumber As String
Public ReadOnly Property pUserName() As String
Get
Return UserName
End Get
End Property
Public ReadOnly Property pPhoneNumber() As String
Get
Return PhoneNumber
End Get
End Property
End Class
ツイート | ![]() |