无法使UpdatePanel按预期工作?

时间:2014-07-12 17:47:20

标签: c# .net

我在页面上有三个下拉列表。

(1)保留停车场结构 - parkingArea (2)保持所选(1) - ddParkingAreaLevel的级别 (3)可用于(2)的时隙--ddAvailableParkingSlots

当某人更改(1)时,(2)上传了(1)的级别,然后(3)更新了可用于所选级别的插槽(2)。

然而,这只是行不通。我对UpdatePanel不太熟悉,根本无法让它按预期工作。

他们现在的工作方式:

当我改变(1)时,(2)被正确更新并且(3)加载(2)的槽。但是,如果我更改(2),则会触发UpdatePanel但是插槽不会加载到(3)和(2)中“跳回”到SelectedIndex的值为0,并且不会保持在新选择的级别。

以下是代码:

<div class="form-group" id="parkingArea" runat="server">
  <label>Parking Area:</label>
  <asp:DropDownList ID="ddParkingAreas" CssClass="form-control" runat="server"
style="width:240px;" onselectedindexchanged="ddParkingAreas_SelectedIndexChanged"
AutoPostBack="true"></asp:DropDownList>
</div>

<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
  <ContentTemplate>
   <div class="form-group">
   <label>Level:</label>
   <asp:DropDownList ID="ddParkingAreaLevel" CssClass="form-control" runat="server"
style="width:240px;" onselectedindexchanged="ddParkingAreaLevel_SelectedIndexChanged"
AutoPostBack="true"></asp:DropDownList>
    </div>
   </ContentTemplate>
   <Triggers><asp:AsyncPostBackTrigger ControlID="ddParkingAreas"
EventName="SelectedIndexChanged" /></Triggers>
</asp:UpdatePanel>     


<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
  <ContentTemplate>
    <div class="form-group">
     <label>Available Parking Slots:</label>
     <asp:DropDownList ID="ddAvailableParkingSlots" CssClass="form-control" 
runat="server" style="width:240px;"></asp:DropDownList>
    </div>
  </ContentTemplate>
  <Triggers><asp:AsyncPostBackTrigger ControlID="ddParkingAreaLevel"
EventName="SelectedIndexChanged" /></Triggers>
</asp:UpdatePanel>  

希望你们中的任何人都可以提供帮助!

此致

鲍勃

1 个答案:

答案 0 :(得分:0)

为什么不为所有级联下拉列表使用一个更新面板?

<asp:UpdatePanel ID="udpMain" runat="server" ChildrenAsTriggers="true">
<ContentTemplate>

    <div class="form-group" id="parkingArea" runat="server">
      <label>Parking Area:</label>
      <asp:DropDownList ID="ddParkingAreas" CssClass="form-control" runat="server" style="width:240px;" onselectedindexchanged="ddParkingAreas_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
    </div>    

    <div class="form-group">
       <label>Level:</label>
       <asp:DropDownList ID="ddParkingAreaLevel" CssClass="form-control" runat="server" style="width:240px;" onselectedindexchanged="ddParkingAreaLevel_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
    </div>

    <div class="form-group">
       <label>Available Parking Slots:</label>
       <asp:DropDownList ID="ddAvailableParkingSlots" CssClass="form-control" runat="server" style="width:240px;"></asp:DropDownList>
    </div>

</ContentTemplate>
<Triggers>
    <asp:AsyncPostBackTrigger  ControlID="ddParkingAreas"  EventName="ddParkingAreas_SelectedIndexChanged" />
    <asp:AsyncPostBackTrigger  ControlID="ddAvailableParkingSlots"  EventName="SelectedIndexChanged" />
</Triggers>    
</asp:UpdatePanel>