我正在为一个问题苦苦挣扎约2天,由于无法弄清,请帮忙。我真的需要。这里有专家吗?
我有一个使用DTO对象类型的ListView 。 在EditItemTemplate中,我有一个使用SqlDataSource的DropDownList 。当我处于“编辑”模式时,它将加载数据源,并且由于它使用SQL请求来更新status_id,因此当它返回ItemTemplate时,它将正确加载该值。
但是当我想回到“编辑”模式时,它会丢失值,因为它不使用SelectedValue
。每当我尝试在我的DropDownList上使用它时,它都将不起作用! BindItem.current_contact.status_id
被视为无效参数,或Bind("status_id")
均被视为无效参数。
如何将值绑定到ListView的EditItemTemplate中的DropDownList ?这是我的代码结构:
<asp:SqlDataSource runat="server" ID="SdsStatus"
SelectCommand="SELECT SP.status_id, SP.sp_label, SP.sp_order FROM tr_status SP WHERE SP.groupe_id = @groupe_id ORDER BY SP.sp_order ; " ConnectionString="<%$ ConnectionStrings:DBLOGIPRO %>">
<SelectParameters>
<ctrl:ClassPropertyParameter Name="groupe_id" ClassName="User" PropertyPath="CurrentNego.groupe_id" ConvertEmptyStringToNull="true" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
<asp:ListView runat="server" ID="LvContact"
RenderOuterTable="false"
SelectMethod="GetAccountWithContacts" ItemType="AccountWithContactsDTO"
UpdateMethod="UpdateAccountWithContacts">
<ItemTemplate>
...
<!-- method that returns the status of the current contact using SQL -->
<td><%# GetCurrentStatusIdOfTheCurrentContact(Item.current_contact) %></td>
</ItemTemplate>
<EditItemTemplate>
...
<asp:DropDownList runat="server" ID="DdlStatus" EnableViewState="true"
DataSourceID="SdsStatus"
DataTextField="sp_label" DataValueField="status_id"
DataTextFormatString="{0}" AppendDataBoundItems="true"
OnSelectedIndexChanged="DdlStatus_SelectedIndexChanged"
AutoPostBack="true">
<asp:ListItem Value="" Text="" Selected="True"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:ListView>