【问题标题】:Items of a ListView have DropDownList: How to get the DataItem when selection changes?ListView 的项目有 DropDownList:选择更改时如何获取 DataItem?
【发布时间】:2012-10-30 22:12:22
【问题描述】:

所以我有这样的事情:

在“Products”ComboBox 下有一个 ListView,它显示当用户单击“Add”按钮添加所选产品时添加的新项目。

当用户为产品选择产品描述符时,我需要更改关联数据绑定对象的属性。如何访问该对象?我有一个给定产品描述符组合框的 SelectedIndexChanged 事件的处理程序,但是如何获取包含已更改其选择的组合框的行的 DataItem?

我考虑过 ListView 的 ItemCommand 事件,但我不知道在这种情况下我将如何使用它。

我还看到了这篇文章,其中一个答案提到将 id 存储在隐藏字段中: DropDownList inside Repeater: How to handle SelectedIndexChange and get DataItem?

但在这种情况下,我如何从那些隐藏字段中获取 Id?

感谢您的帮助!

【问题讨论】:

  • 我刚刚意识到我引用的问题可能在接受的答案中有我所需要的。会去看看

标签: asp.net listview data-binding dataitem


【解决方案1】:

你只需要投射NamingContainerDropDownList

var ddl      = (DropDownList) sender;
var item     = (ListViewItem) ddl.NamingContainer;
var rowView  = (DataRowView)  item.DataItem;

【讨论】:

  • 非常感谢。这让我找到了正确的答案。在我的情况下,DataItem 是 Null,所以我最终使用 item.DataItemIndex 来索引我绑定到的集合
【解决方案2】:

Tim Schmelter 的回答让我想到了这个答案:

            Dim comboBox = CType(sender, RadComboBox)
            Dim item = CType(comboBox.NamingContainer, ListViewItem)
            Dim myListItem = myCollection(item.DataItemIndex)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多