我有一個情況,我有一個從允許編輯的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