2011-08-11 22 views
1

ImageButtonとLinkBut​​tonを持つアイテムのページ分割された複数列ListViewがあります。 deleteコマンドとselectコマンドが機能しています。私はSelectedIndexChangingイベントを発生させることはできませんし、SelectedIndexは常にSelectコマンドハンドラで-1です。私は、ドキュメントごとに必要な選択ボタンがあると思います。私の最終的な目標はアイテムのインデックスを保存することです。ページに戻ると、現在のListViewページャページを復元して、選択したアイテムを表示することができます。しかし、私は商品のインデックスを取得することはできません。これは、asp.net 4.0 Webフォーム用です。ListView選択されたインデックス

<asp:ListView ID="ListView1" runat="server" OnItemDataBound="ListView1_ItemDataBound" 
    DataKeyNames="ItemID" DataSourceID="ObjectDataSource1" 
    OnItemCommand="ListView1_ItemCommand" GroupItemCount="2" 
    onselectedindexchanging="ListView1_SelectedIndexChanging"> 
    <LayoutTemplate> 
    <table width="100%"> 
     <tr> 
     <td> 
      <table class="sample" width="100%"> 
      <asp:PlaceHolder runat="server" ID="groupPlaceHolder"></asp:PlaceHolder> 
      </table> 
     </td> 
     </tr> 
    </table> 
    </LayoutTemplate> 
    <GroupTemplate> 
    <tr> 
     <asp:PlaceHolder runat="server" ID="itemPlaceHolder"></asp:PlaceHolder> 
    </tr> 
    </GroupTemplate> 
    <ItemTemplate> 
    <td> 
     <asp:ImageButton ID="btnDelete" ToolTip="Delete" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ItemID")%>' CommandName="DeleteItem" Height="12" ImageUrl="resources/delete.gif" Width="12" /> 
     <asp:LinkButton ID="btnSelect" runat="server" CommandName="Select" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ItemID")%>'><%# DataBinder.Eval(Container.DataItem, "ItemName") %></asp:LinkButton> 
     <asp:Label ID="ccLabel" runat="server"></asp:Label>&nbsp;&nbsp;&nbsp; 
    </td> 
    </ItemTemplate> 
</asp:ListView> 
+0

代わりにDataPager.StartRowIndexプロパティを試してみて、ユーザーがページに戻ったかどうかを何とか保持しておくと思います。 –

答えて

1

コード(SelectedIndexChanging)を送信した場合に役立ちます。しかし、いずれの場合でも、インデックスは実際にまだ選択されていないため、

SelectedIndexChangingは選択したインデックスを表示しません。

代わりにSelectedIndexChangedを使用してください。これは、インデックスが選択された後に発生するため、値を与えることができます。

+0

現在、SelectedIndexChangingにはコードはありませんが、NewSelectedIndexのDebug.WriteLineだけですが、それは起動しません。私はSelectedIndexChangedハンドラを追加し、それも決して起動しません。 –

+0

マークアップで関数を割り当てる代わりに( 'onselectedindexchanging =" ListView1_SelectedIndexChanging ">'、コードビハインドでそれをやってみましたか?リストビューをダブルクリックして、コードビハインドを開いて、make onselectedinexchangedになっていることを確認し、そこにコードを入れてください。なぜあなたの現在のメソッドが動作していないのか説明できませんが、動作すれば少なくとも問題は解決します。 – Chains

関連する問題