【问题标题】:asp.net ListView SelectedIndex eventasp.net ListView SelectedIndex 事件
【发布时间】:2012-06-05 10:54:52
【问题描述】:

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

但是现在我收到关于未定义的 OnSelectedIndexChanging 的错误。我不需要那个。 奇怪的是,前几天它没有给出那个错误,而今天它给出了。 即使我不使用它,我是否需要定义它?我宁愿不这样做,因为它会刷新页面,如果它只是在那里没有代码后面(意味着你必须按两次列表视图上的选择链接)

我还收到“未处理的引发事件 ItemDeleting”。当我点击前几天没有得到的删除链接时出错。

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

【问题讨论】:

  • 您是否使用过 DataSourceId,现在手动进行数据绑定?
  • 基本上 DataSourceID 在 .aspx 上被初始化为“”,然后我在代码中手动将其绑定到从 listbox.SelectedValue 获取参数的方法。 (您首先单击列表框)因此它在 .aspx 中的“”,因为您只有在单击列表框后才具有该值。
  • 知道如何正确执行此操作吗?由于上述原因,我需要在“选择”链接上单击两次以在列表视图中选择一个行项目。

标签: c# events listview webforms


【解决方案1】:

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

所以代码将是:

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

    onselectedindexchanging="ListView1_SelectedIndexChanging">

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

【讨论】:

    【解决方案2】:

    我认为您从aspx.cs 页面中删除了OnSelectedIndexChanging,但您不应该从您的.aspx 页面中删除此事件。所以它尝试调用并引发错误。ItemDeleting 的情况相同。

    【讨论】:

    • 如果我这样做,我会得到: OnSelectedIndexChanging 事件处理程序不能是空字符串。
    • 转到属性->事件并从那里删除OnSelectedIndexChanging
    • 问题是,如果我删除它,我会得到: ListView 'lvUserLeaveHistory' 引发事件 OnSelectedIndexChanging 未处理。因此必须将其放入以使其工作
    【解决方案3】:

    问题是我手动绑定数据源,而不是在启动时。 一旦我在启动时初始化数据源和列表视图,上述错误就消失了。

    【讨论】:

      猜你喜欢
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      相关资源
      最近更新 更多