C# asp.net ListView SelectedIndex事件

C# asp.net ListView SelectedIndex事件,c#,events,listview,webforms,C#,Events,Listview,Webforms,我有一个列表视图,我需要根据OnSelectedIndexChanged执行某些操作,这很好 但是现在我得到了一个关于OnSelectedIndexChanging的错误,它是未定义的。我不需要那个。 奇怪的是,前几天它没有给出那个错误,而今天它给出了。 即使我没有使用它,我也需要定义它吗?我宁愿不这样做,因为它只刷新页面,而没有代码隐藏(这意味着您必须按两次listview上的Select链接) 我还收到了“未处理的已引发事件项删除”错误消息。当我单击前几天未收到的删除链接时出错 什么会导致上

我有一个列表视图,我需要根据OnSelectedIndexChanged执行某些操作,这很好

但是现在我得到了一个关于OnSelectedIndexChanging的错误,它是未定义的。我不需要那个。 奇怪的是,前几天它没有给出那个错误,而今天它给出了。 即使我没有使用它,我也需要定义它吗?我宁愿不这样做,因为它只刷新页面,而没有代码隐藏(这意味着您必须按两次listview上的Select链接)

我还收到了“未处理的已引发事件项删除”错误消息。当我单击前几天未收到的删除链接时出错


什么会导致上述两个问题?

我认为您从
aspx.cs
页面删除了选中的索引更改
,但您不应该从
.aspx
页面删除此事件。因此,它试图调用并引发错误。
项目删除
的相同情况是,我手动绑定了数据源并不是在启动时。
一旦我在启动时初始化数据源和listview,上面的错误就会消失。

如果您在codebehind将listview绑定到数据源,您必须在SelectedIndexChanged事件中编写一些代码

因此,代码将是:

    protected void ListView1_SelectedIndexChanging(object sender, ListViewSelectEventArgs e)
    {
        this.ListView1.SelectedIndex = e.NewSelectedIndex;
        //bind listview again here !
    }

我希望这能解决您的问题。

您是否使用了DataSourceId,现在手动进行数据绑定?基本上,DataSourceId在.aspx上初始化为“”,然后我在代码中手动将其绑定到一个从listbox.SelectedValue获取参数的方法。(首先单击列表框)因此在.aspx中为“”,因为只有在单击列表框后才具有该值。知道如何正确操作吗?由于上述原因,我需要在选择链接上单击两次以选择listview中的行项目。如果我这样做,我会得到:OnSelectedIndexChanged事件处理程序不能是空字符串。转到属性->事件并从中删除
OnSelectedIndexChangeing
。问题是,如果我删除,我会得到:listview“lvUserLeaveHistory”引发未处理的SelectedIndexchanging事件。因此,必须将其投入运行
    onselectedindexchanging="ListView1_SelectedIndexChanging">