|
あうち ⊂(_ _⊂⌒`つ==
締められてしまった…
でもせっかく書いたので貼っておきますね。
DataList内に配置したコントロールは直接コードビハインドのクラスのメンバにはなりません。
ItemDataBoundイベントのハンドラ内でFindControlメソッドを使って取得します。
こんなかんじ。
[WebForm1.aspx]
<form id="Form1" method="post" runat="server">
<asp:DataList id="DataList1" runat="server" GridLines="Horizontal">
<ItemTemplate>
<asp:Label id="Label1" runat="server" Text="<%#Container.DataItem%>"></asp:Label>
<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
</ItemTemplate>
</asp:DataList>
</form>
[WebForm1.aspx.vb]
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim list As New ArrayList
list.Add("あ")
list.Add("い")
list.Add("う")
DataList1.DataSource = list
DataList1.DataBind()
End Sub
Private Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound
If DirectCast(e.Item.FindControl("Label1"), Label).Text = "い" Then
DirectCast(e.Item.FindControl("Button1"), Button).Visible = False
Else
DirectCast(e.Item.FindControl("Button1"), Button).Visible = True
End If
End Sub
|