Get data value(s) from a DataList control

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • bradleyhogan
    New Member
    • Feb 2009
    • 4

    Get data value(s) from a DataList control

    I've tried various ways to get data value(s) from a DataList control (with same results for ListView and FormView). These are my attempts:

    Code:
        Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim dli As DataListItem
            For Each dli In DataList1.Items
                Dim theValue As String = CType(DataList1.FindControl("AttendeeMailLabel"), Label).Text
                MsgBox(theValue)
            Next
    End Sub
    With result: Object reference not set to an instance of an object

    I've also tried:

    Code:
            Dim itemValue As String
            Dim lvi As ListViewItem
            For Each lvi In ListView1.Items
                itemValue = lvi.Text
                'also tried, with same result: itemValue = lvi.SubItems(0).Text
                MsgBox(itemValue)
            Next
    End Sub
    With result: "'Text' is not a member of System.Web.UI.W ebControls.List ViewItem"

    Any ideas/suggestions?

    This is the script:

    Code:
        <form id="form1" runat="server">
        <div>
        
        </div>
        <br />
        <br />
        <asp:ListView ID="ListView1" runat="server" DataKeyNames="AttendeeID" 
            DataSourceID="SqlDataSource1">
            <ItemTemplate>
                <tr style="">
                    <td>
                        <asp:Label ID="AttendeeEmailLabel" runat="server" 
                            Text='<%# Eval("AttendeeEmail") %>' />
                    </td>
                </tr>
            </ItemTemplate>
            <AlternatingItemTemplate>
                <tr style="">
                    <td>
                        <asp:Label ID="AttendeeEmailLabel" runat="server" 
                            Text='<%# Eval("AttendeeEmail") %>' />
                    </td>
                </tr>
            </AlternatingItemTemplate>
            <EmptyDataTemplate> ... </EmptyDataTemplate>
            <InsertItemTemplate> ...  </InsertItemTemplate>
            <LayoutTemplate> ... </LayoutTemplate>
            <EditItemTemplate> ... </EditItemTemplate>
            <SelectedItemTemplate>
                <tr style="">
                    <td>
                        <asp:Label ID="AttendeeEmailLabel" runat="server" 
                            Text='<%# Eval("AttendeeEmail") %>' />
                    </td>
                </tr>
            </SelectedItemTemplate>
        </asp:ListView>
        <asp:Button ID="Button1" runat="server" Text="Button" />
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ActivitiesConnectionString %>" 
            SelectCommand="SELECT [AttendeeEmail], [AttendeeID] FROM [Attendees] WHERE ([ActivityID] = @ActivityID)">
            <SelectParameters>
                <asp:Parameter DefaultValue="43" Name="ActivityID" Type="Int32" />
            </SelectParameters>
        </asp:SqlDataSource>
        </form>
  • bradleyhogan
    New Member
    • Feb 2009
    • 4

    #2
    Resolved

    Code:
    Dim theValue As String = DirectCast(dli.FindControl("AttendeeMailLabel"), Label).Text
    Thanks to Qin Dian Tang - MSFT at forums.asp.net

    -Bradley

    Comment

    Working...