C# EditItemTemplate中的DropDownList
我在EditTemplate中使用下拉列表,如下所示:C# EditItemTemplate中的DropDownList,c#,asp.net,C#,Asp.net,我在EditTemplate中使用下拉列表,如下所示: <EditItemTemplate> <asp:DropDownList ID="ddlBusinessType" runat="server" DataSourceID="BusinessTypeSource" DataTextField="Value" DataValueField="Value" AppendDataBoundItems="true"
<EditItemTemplate>
<asp:DropDownList ID="ddlBusinessType" runat="server" DataSourceID="BusinessTypeSource" DataTextField="Value" DataValueField="Value" AppendDataBoundItems="true" Text='<%# Bind("BusinessType") %>'>
<asp:ListItem>Please Select</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
我遇到的问题是,我绑定的字段有一个空值。
由于数据源中没有空值,因此我收到以下错误消息:
“ddlBusinessType”的SelectedValue无效,因为它不在项目列表中。参数名称:value
我不知道如何解决这个问题。当我进行绑定时,如果该值不在数据源中,我希望将其默认为“请选择”它应该类似于:
<EditItemTemplate>
<asp:DropDownList ID="ddlBusinessType" runat="server"
DataSourceID="BusinessTypeSource"
DataTextField="BusinessType" DataValueField="Value" AppendDataBoundItems="true" >
<asp:ListItem Value="-1">Please Select</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
请选择
1) 无需设置文本,因为您已经对文本字段进行了绑定
2) 您需要为添加到标记中的默认项设置一个值。取决于具体情况,但我经常使用的一个选项如下: 1) 在查找表中,我将有一个标题为“未选定”的条目, 主键值为0(或任何值) 2) 在事务表中,将该字段的所有空值更新为0(或“未选择”选项的任何值)。另外,将该字段的默认值设置为0
这很好,有两个原因——第一,不需要特殊的标记(所以您知道它总是一致的)——第二,无论您在哪里使用此数据,都可以访问“未选择”输出。您正在尝试在绑定过程之前选择项。捕获绑定事件并在此位置设置取消选择的值。您正在尝试在绑定过程之前选择该值。您应该将此行为移动到数据绑定事件。
<EditItemTemplate>
<asp:DropDownList ID="ddlBusinessType" runat="server"
DataSourceID="BusinessTypeSource"
DataTextField="BusinessType" DataValueField="Value" AppendDataBoundItems="true" >
<asp:ListItem Value="-1">Please Select</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>