ListView选择了索引

时间:2011-08-11 19:24:55

标签: asp.net-4.0 webforms

我有一个带有ImageButton和LinkBut​​ton的分页多列ListView项目。删除和选择命令正在运行。我无法触发SelectedIndexChanging事件,并且SelectedIndex在Select命令处理程序中始终为-1。我认为我按照文档提供了所需的选择按钮。我的最终目标是保存项目的索引,这样当我返回页面时,我可以恢复当前的ListView寻呼机页面,以便所选项目可见。但我无法获得项目索引。这适用于asp.net 4.0 webforms。

<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 个答案:

答案 0 :(得分:1)

如果您发布了代码(SelectedIndexChanging),这将有所帮助。但无论如何,有人想到:

SelectedIndexChanging不会为您提供所选索引,因为尚未实际选择索引。

请改用SelectedIndexChanged。这在选择索引后发生,因此可以给你一个值。