我有一个带有ImageButton和LinkButton的分页多列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>
</td>
</ItemTemplate>
</asp:ListView>
答案 0 :(得分:1)
如果您发布了代码(SelectedIndexChanging),这将有所帮助。但无论如何,有人想到:
SelectedIndexChanging
不会为您提供所选索引,因为尚未实际选择索引。
请改用SelectedIndexChanged
。这在选择索引后发生,因此可以给你一个值。