2013-08-29 8 views
0

두 개의 DropdownLists가 있습니다. 나는 첫번째 것의 선택 변경에 두번째 것을 묶고 싶다. SelectionIndexChanged 이벤트가 발생하지 않습니다 또한 내가 드롭 다운리스트 ddlCategory이, 드롭 다운리스트 ddlCategory가 그 가치를 잃고 빈 표시 변경하면Asp.net의 업데이트 패널에서 AsyncPostBackTrigger 이후 드롭 다운 목록 값 손실

<asp:ScriptManager ID="ScriptManager1" runat="server" /> 
<asp:UpdatePanel ID="upCategory" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:MultiView ID="mvSuggestions" ActiveViewIndex="0" runat="server"> 
      <asp:View ID="vManageCategory" runat="server"> 
       <table width="100%"> 
        <tr> 
         <td style="text-align:center;"> <span class="BlockHeader"><span>Suggestions</span></span> 
         </td> 
        </tr> 
        <tr> 
         <td> <span class="ButtonInput"> 
        <span>    

        <asp:Button ID="btnCreateNew" runat="server" TabIndex="2" 
      Text="Create New Suggestions" onclick="btnCreateNew_Click" /> 


        </span></span> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <asp:GridView ID="gvSuggestion" runat="server" AllowPaging="true" AutoGenerateColumns="false" DataKeyNames="id" Width="285px"> 
           <Columns> 
            <asp:boundfield datafield="suggestion_area" headertext="Suggestions" /> 
            <asp:boundfield datafield="active_closed" headertext="status" /> 
            <asp:boundfield datafield="date_creation" headertext="created date" /> 
           </Columns> 
          </asp:GridView> 
         </td> 
        </tr> 
       </table> 
      </asp:View> 
      <asp:View ID="vCreateSuggestions" runat="server"> 
       <table width="100%"> 
        <tr> 
         <td colspan="2" style="text-align:center;"> <span class="BlockHeader"><span>Suggestions</span></span> 
         </td> 
        </tr> 
        <tr> 
         <td colspan="2"> <span class="ButtonInput"> 
        <span>         
        <asp:Button ID="btnShowCategory" runat="server" TabIndex="2" 
      Text="Show Suggestions" onclick="btnShowCategory_Click" />   
        </span></span> 
         </td> 
        </tr> 
        <tr> 
         <td rowspan="2">Suggestion Subject</td> 
         <td rowspan="2"> 
          <asp:TextBox ID="txtSuggestionSubject" runat="server" TextMode="MultiLine"></asp:TextBox> 
          <asp:RequiredFieldValidator ID="rfvSuggestionSubject" runat="server" ControlToValidate="txtSuggestionSubject" ValidationGroup="Blank" ErrorMessage="Category can not blank!" Display="None" SetFocusOnError="true"></asp:RequiredFieldValidator> 
          <ajaxToolkit:ValidatorCalloutExtender ID="vceSubCategory" TargetControlID="rfvSuggestionSubject" runat="server" Width="120px"></ajaxToolkit:ValidatorCalloutExtender> 
         </td> 
        </tr> 
        <tr> 
         <td></td> 
         <td></td> 
        </tr> 
        <tr> 
         <td> 
          <asp:Label ID="lblCategory" runat="server" Text="Category"></asp:Label> 
         </td> 
         <td>** 
          <asp:DropDownList ID="ddlCategory" runat="server" Height="16px" ValidationGroup="Blank" OnSelectedIndexChanged="ddlCategory_SelectedIndexChanged" Width="210px" AutoPostBack="true"></asp:DropDownList>** 
          <asp:RequiredFieldValidator ID="rfvCategory" runat="server" ControlToValidate="ddlCategory" ValidationGroup="Blank" ErrorMessage="Please select category!" Display="None" InitialValue="0" SetFocusOnError="true"></asp:RequiredFieldValidator> 
          <ajaxToolkit:ValidatorCalloutExtender ID="cveCategory" TargetControlID="rfvCategory" runat="server" Width="230px"></ajaxToolkit:ValidatorCalloutExtender> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <asp:Label ID="lblSubCategory" runat="server" Text="Sub Category"></asp:Label> 
         </td> 
         <td> 
          <asp:DropDownList ID="ddlSubCategory" runat="server" Width="203px"></asp:DropDownList> 
          <asp:RequiredFieldValidator ID="rfvSubCategory" runat="server" ControlToValidate="ddlSubCategory" ValidationGroup="Blank" ErrorMessage="Please select sub category!" Display="None" InitialValue="0" SetFocusOnError="true"></asp:RequiredFieldValidator> 
          <ajaxToolkit:ValidatorCalloutExtender ID="cveSubCategory" TargetControlID="rfvSubCategory" runat="server" Width="230px"></ajaxToolkit:ValidatorCalloutExtender> 
         </td> 
        </tr> 
        <tr> 
         <td rowspan="2">Suggestion</td> 
         <td rowspan="2"> 
          <asp:TextBox ID="txtSuggestion" runat="server" TextMode="MultiLine" Height="75px"></asp:TextBox> 
          <asp:RequiredFieldValidator ID="rfvSuggestion" runat="server" ControlToValidate="txtSuggestion" ValidationGroup="Blank" ErrorMessage="Suggestion can not blank!" Display="None" SetFocusOnError="true"></asp:RequiredFieldValidator> 
          <ajaxToolkit:ValidatorCalloutExtender ID="vceSuggestion" TargetControlID="rfvSuggestion" runat="server" Width="120px"></ajaxToolkit:ValidatorCalloutExtender> 
         </td> 
        </tr> 
        <tr> 
         <td></td> 
         <td></td> 
        </tr> 
        <tr> 
         <td></td> 
         <td></td> 
        </tr> 
        <tr> 
         <td></td> 
         <td></td> 
        </tr> 
        <tr> 
         <td align="right" colspan="2" style=" padding-right:150px;"> <span class="ButtonInput"><span> 
      <asp:Button ID="btnSubmit" runat="server" onclick="btnSubmit_Click" 
       TabIndex="2" Text="Submit" ValidationGroup="Blank" /> 
      </span></span> 
         </td> 
        </tr> 
       </table> 
      </asp:View> 
     </asp:MultiView> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnCreateNew" EventName="click" /> 
     <asp:AsyncPostBackTrigger ControlID="btnShowCategory" EventName="click" /> 
     <asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="click" />** 
     <asp:AsyncPostBackTrigger ControlID="ddlCategory" EventName="SelectedIndexChanged" />**</Triggers> 
</asp:UpdatePanel> 

과 :

여기 내 코드입니다.

답변

0

내부 컨트롤 패널의 컨트롤은 기본적으로 비동기 호출을 트리거합니다. 너는 그걸 위해 아무것도 할 필요가 없어. 그리고 AsyncPostBackTriggerUpdatePanel 외부의 컨트롤에서 비동기 포스트 백을 트리거합니다. 이는 사용자의 경우가 아닙니다. 내가 AsyncPostBackTrigger vs PostBackTriggerWhat is the different between AsyncPostBackTrigger & PostBackTrigger really?를 읽고 제안 더 나은 이해를 위해

<asp:AsyncPostBackTrigger ControlID="btnCreateNew" EventName="click" /> 
<asp:AsyncPostBackTrigger ControlID="btnShowCategory" EventName="click" /> 
<asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="click" /> 
<asp:AsyncPostBackTrigger ControlID="ddlCategory" EventName="SelectedIndexChanged" /> 

: 그래서 다음 줄을 제거합니다.