Ну, у меня есть GridView с редактируемым полем, например TemplateField с DropDownList.
Мой код:
<Columns>
...
<asp:TemplateField SortExpression="Room" HeaderText="Room">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" Runat="server" DataSourceID="categoryDataSource" DataTextField="RoomNumber" DataValueField="RoomNumber" SelectedValue='<%# Bind("Room") %>'>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<ItemTemplate>
<asp:Label Runat="server" Text='<%# Bind("Room") %>' ID="Label1"></asp:Label>
</ItemTemplate>
</Columns>
В моей БД есть таблица Rooms, в которой есть строки: RoomId, RoomNumber.
В моем DropDownList я пытаюсь установить все значения из таблицы Rooms.
Таблица имеет 3 строки (RoomId, RoomNumber): 1 - 20; 2 - 12; 3 - 24.
Но ошибка записи следует:
'DropDownList1' has a SelectedValue which is invalid because it does not exist in the list of items.
Имя параметра: значение
Может кто-нибудь знает, где я ошибся?
Редактировать: Вот код SQLDataSource
<asp:SqlDataSource ID="categoryDataSource" Runat="server"
SelectCommand="SELECT [RoomId], [RoomNumber] FROM [Rooms] ORDER BY [RoomNumber]"
ConnectionString="Data Source=.\MSSQLSERVERR2;AttachDbFilename=|DataDirectory|\ARMDB.MDF;Integrated Security=True;User Instance=True">
</asp:SqlDataSource>