2016-08-12 23 views
0

クリックしたときにクリックされたボタンに関連する情報を含むモーダルを開くListViewにボタンがあります。現在のリストビュー項目のインデックスを取得できましたが、前の項目と次の項目の両方のラベルからテキストを取得する必要があります。ListViewの次の項目と前の項目を取得してラベル名を見つける方法

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"); 



    } 

私はインデックスをデクリメントしようとしましたが、幸運はありませんでした、誰かが良いアイデアを持っていますか?ありがとう。

UPDATEは、相続人は私のリストビューでは、私はタイトルの下にジョブを引っ張ってタイトルした後、第2を取得するために最初にリストビューを使用します。私は、データバインド

<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> 

+1

が重複する可能性を試してみてください(http:// stackov erflow.com/questions/15549921/select-next-item-in-listview) – MethodMan

+0

いいえ。とにかくその複製ではありません – naveen

答えて

0

を使用してクエリの両方を結合し、[リストビューの次の項目を選択]この

//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; 
+0

リストの真ん中で何かを選択したとしても、すべてのアイテムがヌルになっています – user2993767

+0

マークアップを表示してください。リストビューは少しトリッキーです – naveen

関連する問題