ListView выбранный индекс - PullRequest
       19

ListView выбранный индекс

1 голос
/ 11 августа 2011

У меня есть постраничный многоколоночный ListView элементов с ImageButton и LinkButton.Команды удаления и выбора работают.Я не могу получить событие SelectedIndexChanging, и SelectedIndex всегда равен -1 в обработчике команды Select.Я думаю, что у меня есть необходимая кнопка выбора согласно документам.Моя конечная цель - сохранить индекс элемента, чтобы при возврате на страницу я мог восстановить текущую страницу пейджера ListView, чтобы выбранный элемент был виден.Но я не могу получить предметный указатель.Это для веб-форм asp.net 4.0.

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

1 Ответ

1 голос
/ 11 августа 2011

Будет полезно, если вы разместите свой код (SelectedIndexChanging). Но в любом случае одна мысль:

SelectedIndexChanging не даст вам выбранный индекс, потому что индекс еще не был выбран.

Вместо этого используйте SelectedIndexChanged. Это происходит после того, как индекс был выбран, поэтому может дать вам значение.

...