<%#在aspx文件中的含义是什么

Gra*_*ham 2 asp.net

从来没有做过aspx.试图修复一个bug.

我已将其跟踪到这行代码:

<asp:DropDownList ID="ddlProject_Edit" selectedvalue='<%# Bind("ProjectsId") %>' runat="server"  CssClass="ddl" DataSourceID="dsProject_Edit" DataTextField="DESCRIPTION" DataValueField="BOUND_"></asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

Error: Sys.WebForms.PageRequestManagerServerErrorException: 'ddlProject_Edit' has a SelectedValue which is invalid because it does not exist in the list of items.
Run Code Online (Sandbox Code Playgroud)

所以我猜它与这<%# Bind("ProjectsId") %>件作品有关.

怎么<%#办?谷歌搜索这些角色并没有证明是非常有成效的.

更有帮助的是解释究竟Bind("ProjectsId")做了什么.

Dav*_*vid 6

这是一个数据绑定表达式.

据说这里有两组数据:

  • 填充选项中的一组项目 DropDownList
  • 转发器/网格/等中的一组记录.某种包含的DropDownList

这段代码的作用基本上是:

对于此"行"表示的记录,请将此控件的ProjectsId值设置为该记录中的值.

至于错误,发生的事情是记录中有一个不存在的值DropDownList.为了说明,假设您有DropDownList以下项目:

  • 苹果
  • 橙子
  • 香蕉

这里发生的事情是记录具有价值"Pear".因此系统无法设置值,DropDownList因为该值不存在.

这背后的根本问题是数据不好.数据中存在参考完整性.记录具有不存在的查找值.要么需要更正数据,要么应用程序不能再认为数据是正确的并且必须考虑到这一点.