我在 edititemtemplate 中有一个下拉列表控件,用于定义如下所示的详细信息视图:
<asp:TemplateField HeaderText="Primary Use">
<EditItemTemplate>
<asp:DropDownList ID="ddlPrimaryUseEdit" runat="server" OnDataBinding="DropDownList_DataBinding"
SelectedValue='<%# Bind("PrimaryUse") %>' ToolTip="Primary Use">
<asp:ListItem Value="">Unknown</asp:ListItem>
<asp:ListItem>Manufacturing Facilities</asp:ListItem>
<asp:ListItem>Residential</asp:ListItem>
<asp:ListItem>VSSM Office</asp:ListItem>
<asp:ListItem>Engineering / Office / Warehouse</asp:ListItem>
<asp:ListItem>Vacant / Surplus Land</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
我有一个数据源定义为对我的数据库的查询,该数据库有一个名为“PrimaryUse”的列。有时,PrimaryUse 列中可能有一个值未列为下拉列表项之一,因此我的应用程序在尝试将下拉列表的 selectedvalue 绑定到该字段时崩溃。我正在尝试在 edititemtemplate 的 OnDataBinding 事件中创建代码,该代码将检查从数据源返回的值是否是作为下拉列表选项中的项目列出的有效值。我的问题是我不确定如何在后面的代码中获取该列的数据源字段值。这可能吗?是这样,有人可以给我一个例子或指出我如何做到这一点的方向吗?
因此,在上面列出的 edititemtemplate 的 OnDataBinding 事件中,我想做如下的事情(伪代码):
if datasource.datafieldvalue("PrimaryUse") is in dropdownlist.Items then Valid
else set dropdownlist.Selectedvalue = "Default"