我正在使用带有模型绑定的asp net 4.5.2;我有一个问题,每当我尝试在DropDownList上使用模型绑定时它会引发错误An item with the same key has already been added
,但如果我将其更改为SQLDataSource,则错误消失。
提前致谢
更新
示例代码
<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>
答案 0 :(得分:0)
然后问题可能是因为您在页面加载时填充它而不检查Page.IsPostBack。您不想重新填充每个回发的控件。您确实希望(通常)允许ViewState。所以我会重新启用,并将你的populate方法包装在(而不是page.ispostback)中。