首页 > 解决方案 > 参考其他表格的 ASP.NET Formview 下拉列表

问题描述

我有一个带有 2 个表的 SQL 数据库,“Ingredients”和“Ingredient Types”。在我的成分表中,我有一个链接到我的成分类型 PK 的外键。

这很好,当我尝试在 FK 字段中填写不正确的值时,我收到一个错误。

但是...我想将编辑表单上的文本框替换为下拉列表,该列表必须显示成分类型表中的值...。(代码为 PK,描述要在我的下拉列表中显示的值)

在我的 ASP.NET 项目中,我制作了 2 个 SQL 数据源(SqlDataSource1 -> 成分表和 SqlDataSource2 -> 成分类型表)

我创建了一个 Formview 并将其链接到 SqlDataSource1(成分表)我替换了下拉列表的文本框并将其链接到 SqlDataSource2:

<asp:DropDownList runat="server" ID="unitDropDown" DataSourceID="SqlDataSource2" DataValueField="Code" DataTextField="Description" SelectedValue='<%# Bind("Code") %>' />

当我开始我的页面时,我收到一个错误:“System.Data.DataRowView”不包含名为 Code 的属性。

但据我所知,我确实有一个列名代码

我在 SSMS 中添加了一张带有 2 个表的屏幕截图的图片。数据库

我做错了什么?还是有更好的方法来实现这一目标?

标签: c#asp.net

解决方案


您收到此错误的原因是您的 SqlDataSource1 (BM_Ingridients) 中没有名为“代码”的列,这是您要绑定的表。

您应该尝试更改为:

SelectedValue='<%# Bind("IngridientType") %>' 

这是ForeignKeySqlDatasource2 (BM_IngridientsType) 中对应值的引用。


推荐阅读