私はモデルバインディングでasp net 4.5.2を使用しています。 DropDownListでモデルバインドを使用しようとすると、エラーが発生するのですが、エラーAn item with the same key has already been added
が発生しますが、SQLDataSourceに変更するとエラーになります。あなたがPage.IsPostBackをチェックせず、ページの読み込みにそれを移入しているので、事前に おかげaspnet web forms同じキーを持つアイテムがすでに追加されています
更新
サンプルコード
<asp:ListView runat="server" ID="lvChairItem" DataKeyNames="ChairItemId" InsertItemPosition="FirstItem" OnItemCanceling="lv_ItemCanceling" OnItemUpdated="lv_ItemUpdated" OnItemEditing="lv_ItemEditing" ClientIDMode="AutoID" OnCallingDataMethods="ChairItem_CallingDataMethods" SelectMethod="GetByChairId" InsertMethod="InsertItem" UpdateMethod="UpdateItem" DeleteMethod="DeleteItem" ItemType="App.Model.ChairItem">
.............
<InsertItemTemplate>
<tr>
........
<td>
<asp:DropDownList ID="ddlRoomId" CssClass="" DataValueField="Value" DataTextField="Text" AppendDataBoundItems="true" Text='<%# BindItem.RoomId %>' Width="100%" OnCallingDataMethods="Room_CallingDataMethods" SelectMethod="GetAllForDDL" runat="server" EnableViewState="true">
<asp:ListItem Value="">--Select--</asp:ListItem>
</asp:DropDownList>
</td>
........
</tr>
</InsertItemTemplate>
.....................
</asp:ListView>
一部のコードを投稿するには、より多くの情報が必要です。あなたのモデルは、各ListItemのキー/値に対して同じ値を生成しています。 –
ありがとうございます。しかし、EnableViewState = Falseをすべてのドロップダウンリストに追加することで修正しました。 – lostmylogin