asp:ListView SelectedIndexChanging没有触发

时间:2015-11-21 07:37:54

标签: c# asp.net listview events

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

输出:

enter image description here

因为我有两个名字为A和B的用户。

现在的问题是当我点击A或B时,事件OnSelectedIndexChanged和OnSelectedIndexChanging没有触发。如何获取用户点击的选定索引?

完成项目,如果有人想看,实际上没有必要:https://app.box.com/s/bhs682q6fqai784kao0zv1tcxgxecr4s

1 个答案:

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