0

I have a button in a ListView that when its click it opens a modal with information relevant to the button that was clicked. I was able to get the index of the current listview item but I need to get the text from a label in both the previous item and next item. Heres what I have:

protected void List_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        ListViewDataItem dataItem = (ListViewDataItem)e.Item;
        //Gets index of Listview
        int DispalyIndex = e.Item.DisplayIndex;
        int ItemIndex = e.Item.DataItemIndex;
        Button index = (Button)dataItem.FindControl("TitleButton");
        Label Name = (Label)dataItem.FindControl("LabelName");



    }

I tried decrementing the index but no luck, anyone have an idea or a better solution? Thanks.

UPDATE

Heres my listviews, I use the first Listview to get the title and then the second to pull Jobs under the title. I bind both with a query using data bind

<asp:ListView ID="List" runat="server" OnItemCommand="List_ItemCommand" OnItemDataBound="List_ItemDataBound">
    <LayoutTemplate>
 <table>
     <tr>
      <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>   
    </tr>
   </table>
</LayoutTemplate>
           <ItemTemplate> 

<span class="label label-primary"><%# Eval("LabelName")%></span> <br />

                <asp:ListView ID="JobList" runat="server" ItemPlaceholderID="JobPlaceHolder" OnItemDataBound="JobList_ItemDataBound">
                <LayoutTemplate>

                            <asp:PlaceHolder runat="server" ID="JobPlaceHolder" />

                </LayoutTemplate>
                <ItemTemplate>

                   <br />


                        <asp:Button runat="server" ID="TitleButton" Text='<%# Eval("Job Title") %>' Font-Size="XX-Small" Font-Bold="true" CssClass="btn-xs btn-default" ClientIDMode="Static" OnClick="TitleButton_Click" />

                              </ItemTemplate>
                    <EmptyDataTemplate>
                        <br />
                      <b> <asp:Label runat="server" Text="There is no job for this Family and Level!" /></b>

                    </EmptyDataTemplate>

RedMenace
  • 65
  • 7

1 Answers1

0

Try this

//null check before performing an operation, dataItem might be the first element in the page
//If so, prevItem will be null
var prevItem = List.Items[itemIndex - 1].FindControl("LabelName") as Label;
//null check before performing an operation, dataItem might be the last element in the page
//If so, nextItem will be null
var lastItem = List.Items[itemIndex + 1].FindControl("LabelName") as Label;
naveen
  • 53,448
  • 46
  • 161
  • 251