2011-08-11 136 views
1

我有一个分页的多列ListView与ImageButton和LinkBut​​ton的项目。删除和选择命令正在工作。我无法触发SelectedIndexChanging事件,并且SelectIndex在Select命令处理程序中始终为-1。我想我有按照文档所需的选择按钮。我的最终目标是保存项目的索引,因此当我返回页面时,我可以恢复当前的ListView寻呼机页面,以便所选项目可见。但我无法获得物品索引。这是为asp.net 4.0 webforms。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 =>'''',''''''''''''''''''''中尝试完成它的功能吗?双击你的列表视图,然后在打开的代码背后确定它是'onselectedinexchanged',然后把你的代码放在那里,它不能解释为什么你当前的方法不起作用,但是如果它起作用,至少问题就解决了。 – Chains