我有一个情况,我有一个从允许编辑的sql表填充的gridview。对于其中一个字段,我拥有它,用户必须从GridView的编辑模板中的下拉框中选择一个值。将DropDownList SelectedValue设置为一个有时为空值的绑定字段
<asp:TemplateField HeaderText="Department" SortExpression="Department">
<EditItemTemplate>
<asp:DropDownList ID="ddlEditDepartment" runat="server"
SelectedValue='<%# Bind("Department") %>'>
<asp:ListItem>Department 1</asp:ListItem>
<asp:ListItem>Department 2</asp:ListItem>
<asp:ListItem>Department 3</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblDepartment" runat="server" Text='<%# Bind("Department") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
如果您选择在这个领域已经有存储在表中的一个值,没有问题的纪录“编辑”。但是,如果选择“编辑”,并没有在表中它没有价值呢,您会收到以下错误
'ddlEditDepartment' has a SelectedValue which is invalid because it does not exist in the list of items.
Parameter name: value
我怎么能在这种情况下,占空或空值,而且使这项工作?
我真的很喜欢这个想法,它会做我想做的。虽然编辑Select语句后,出现错误: DataBinding:'System.Data.DataRowView'不包含名为'Department'的属性。 'SelectCommand =“SELECT ID,COALESCE(Department,'No department'),Notes FROM Departments”' –
编辑注释... –
我的不好,你需要别名列@ @ kyle_13。 'COALESCE(部门,'没有部门')AS Department' – jadarnel27