asp.net - 绑定(bind) DropDownList "unused"项目加上 GridView 的 EditItemTemplate 中的当前行项目?

标签 asp.net gridview drop-down-menu edititemtemplate

我有 2 个表,它们具有可以相互映射的唯一 ID(其中一个表来 self 的应用程序外部的数据库,但包含有关我正在跟踪的相同实体的信息)。我想提供一个 UI,用于将“我的”记录与“其他”记录链接起来,这样我就可以将“其他”ID 存储在我的表中以获取匹配记录。简而言之,关键的 UI 元素是一个下拉列表,显示“其他”表中的可用(即尚未链接)记录。

我有一个 GridView ,用于在每一行中显示“我的”记录,以及显示“其他”表中链接记录(如果有)中的一些信息的列。这些数据与建筑物和特性有关,因此可能如下所示:

Building1   Dallas   TX    Building1_Dallas_TX
Building2   Memphis  TN    Bldg2_Memphis_TN
Building3   Denver   CO
Building4   Seattle  WA
Building5   Boston   MA    Building5_Boston_MA

其中前 3 列显示“我的”表中的一些信息,最后一列显示“其他”表中的匹配记录,其中记录已链接,否则为空白,表示尚未建立链接。我的实际 gridview 还有“我的”表中的几列,但这足以说明需求。

当单击一行的“编辑”(未显示)时,我希望能够编辑所有 4 列。前 3 个是文本框;最后一列应该是一个下拉列表,显示“其他”表中的所有未链接记录,加上“未分配”选项(作为列表中的第一项),以便记录可以“取消链接”或简单地保留未分配状态,加上(对于那些已建立链接的行)链接的项目(它已“使用”,但需要在那里,以便它们可以继续使用它)。

我可以在 gridview RowEditing 事件的代码隐藏中正确填充下拉列表(除了我在 .aspx 中将 AppendDataBoundItems 选项设置为 true 添加为 ListItem 的未分配项目),并且我可以在ddl 的 DataBound 事件,但在回发时,当我单击更新行时,ddl 中不再有任何项目(除了未分配的项目),因此链接始终被清除。如果我通过直接编辑表来手动设置链接,则进入编辑模式时一切看起来都很好 - ddl 中包含正确的项目,并且它预先选择了正确的项目,但在更新回发时所有内容都会丢失。我已经尝试在页面周期的各个阶段重新绑定(bind) ddl,但显然我还不太了解该周期,因为我无法弄清楚如何让用户选择的项目来更新我的表。

我还尝试使用 SqlDataSource SelectCommand 填充 ddl,但没有运气包括其他数据库中当前链接记录的 ID(即使它在“我的”表中可用并且我将其设置为 GridView DataKey 并将其作为 ControlParameter 添加到 SqlDataSource 的 SelectParameters 中。如果 ddl 项列表中没有当前链接的记录,我将无法保留现有链接。

我暂时不会发送代码示例——这条消息已经太长了! - 希望解决方案从我所描述的内容中显而易见......我不认为我的目标很奇怪,但我愿意接受其他说服。

非常感谢!

克里斯

最佳答案

好吧,我不会详细介绍代码,因为也许您已经完成了我要建议的操作。

对于最后一列(下拉列表),您必须执行 SQL 语句来获取未链接的项目。使用“WHERE xx NOT IN”。对于“未分配”选项,只需将一个项目添加到与上面相同的代码范围内的列表中即可。

下一步是手动处理 GridView 的编辑事件。插入、更新和删除。

我认为这样你就不会有问题。

关于asp.net - 绑定(bind) DropDownList "unused"项目加上 GridView 的 EditItemTemplate 中的当前行项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2250395/

相关文章:

asp.net - 使用 jQuery ajax 时如何在 VB.NET 中捕获异常

java - 03-01 17 :00:28. 629:E/AndroidRuntime(30201):致命异常:主要

HTML 下拉菜单导航不显示

python - Jupyter notebook 上的多个依赖小部件(下拉菜单)

asp.net - Asp.net 中的下拉列表验证使用必填字段验证器

c# - 如何从用户控件母版页内的内容页中找到标签控件?

gridview - WinRT XAML GridView 控件中的 "Sticky scrolling"问题

asp.net - 在 ASP.NET Linq 数据绑定(bind)中将 Gridview 数据导出到 Excel

jQuery - Twitter Bootstrap - 下拉菜单始终可见

asp.net - 由于错误 : Error: Cannot find module "." at webpackMissingModule,预呈现失败