c# - 参考其他表格的 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 个表的屏幕截图的图片。数据库
我做错了什么?还是有更好的方法来实现这一目标?
解决方案
您收到此错误的原因是您的 SqlDataSource1 (BM_Ingridients) 中没有名为“代码”的列,这是您要绑定的表。
您应该尝试更改为:
SelectedValue='<%# Bind("IngridientType") %>'
这是ForeignKey
SqlDatasource2 (BM_IngridientsType) 中对应值的引用。
推荐阅读
- python - Tkinter 和 GUI 刷新
- r - 将行名和列名分配给许多矩阵
- python - 如何使用pygame在可调整大小的窗口中绘制矩形的边框?
- javascript - 如何通过前缀或键将 JSON 键分组为新键?
- google-cloud-platform - “错误:(gcloud.asset.export)用户没有权限”仅在使用服务帐户进行身份验证时
- css - 取消设置 CSS 属性“继承”
- variables - 有没有办法在主时间轴中为影片剪辑创建变量?AS3
- html - 如何在 svg 元素上使用 css 动画和属性?
- php - How add Laravel 8 error pages 403, 404, 500, 503
- webdriver-io - 不将 WebdriverIO 版本 4 升级到 5 或更高版本有什么风险?