我在google和bing中搜索并查看了所有帖子,甚至在stackoverflows搜索中但找不到解决方案。
为了确定我创建了一个新项目的错误,它有一个页面,其中包含:
<asp:ListView runat="server" ID="ListView" DataSourceID="SqlDataSource" OnSelectedIndexChanged="ListView_OnSelectedIndexChanged" OnSelectedIndexChanging="ListView_OnSelectedIndexChanging">
<ItemTemplate>
<asp:Label runat="server" ID="Label" Text='<%#Eval("UserName") %>' ></asp:Label><br/>
</ItemTemplate>
</asp:ListView>
<asp:SqlDataSource runat="server" ID="SqlDataSource" SelectCommand="Select * FROM Users" ConnectionString="<%$ConnectionStrings:DefaultConnection %>"></asp:SqlDataSource>
输出:
因为我有两个名字为A和B的用户。
现在的问题是当我点击A或B时,事件OnSelectedIndexChanged和OnSelectedIndexChanging没有触发。如何获取用户点击的选定索引?
完成项目,如果有人想看,实际上没有必要:https://app.box.com/s/bhs682q6fqai784kao0zv1tcxgxecr4s
答案 0 :(得分:1)
ListView.SelectedIndexChanging在单击项目的选择按钮时,但在ListView控件处理选择操作之前发生事件。 (“选择”按钮是一个按钮控件,其CommandName属性设置为“选择”。)
将您的代码更改为
<asp:ListView runat="server" ID="ListView" DataSourceID="SqlDataSource" OnSelectedIndexChanged="ListView_OnSelectedIndexChanged" OnSelectedIndexChanging="ListView_OnSelectedIndexChanging" AutoPostBack="true">
<ItemTemplate>
<asp:Label runat="server" ID="Label" Text='<%#Eval("UserName") %>' ></asp:Label>
<asp:LinkButton runat="server" ID="ButtonSelect" CommandName="Select" Text="SelectButton"/><br/>
</ItemTemplate>
</asp:ListView>