ListView的EditItemTemplate中的DropDownList

时间:2018-09-17 10:25:52

标签: c# asp.net

我正在为一个问题苦苦挣扎约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>

0 个答案:

没有答案