【发布时间】:2012-10-11 21:45:00
【问题描述】:
我的 FormView(学生)有一个 ObjectDataSource,FormView 中的 DropDownList(名称)有另一个 ObjectDatSource。如果 DropDownList 的源不包含与 formview 的源匹配的名称值,我想显示“不可用”。目前我有这个代码,如果数据源返回一个 NULL 值,它就可以工作。当 FormView 名称值不在 DropDownList 的数据绑定列表中时,如何将其更改为显示“不可用”?
<asp:FormView ID="Students" runat="server" DataSourceID="Students_DataSource">
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>' />
</ItemTemplate>
<EditTemplate>
<asp:DropDownList ID="ddlName" runat="server"
SelectedValue='<%# If(Eval("Name") IsNot Nothing, Eval("Name"), "Not Available") %>'
DataSourceID="fvAllNames" runat="server" DataTextField="Name" DataValueField="Name" />
</EditTemplate>
</asp:FormView>
【问题讨论】:
-
我正在使用一个数据库,使用我的示例,Student 表有很多过去的错误条目,这需要我很长时间才能返回并修复/正确绑定到名称桌子。姓名表是新的,并且有准确的学生姓名的良好列表。因此,gridview 中的此检查将捕获 Student 表中的任何条目,其中输入的名称可能带有额外的空格等,与 Names 表不匹配。对不起,如果这仍然令人困惑......
-
我通常不使用数据源控件。我倾向于创建从数据库构建的自定义对象,并在代码中处理。我知道如果您是这样设置的,您实际上可以只查询对象集合(数据库结果集)并将它们与下拉列表的项目集合匹配并相应地操作它们。它的代码多一点,但 imo 更灵活。
-
我是 ASP.NET 新手。你能给我举个例子来说明如何做到这一点吗?
标签: asp.net gridview drop-down-menu objectdatasource formview