Как предотвратить полные постбэки от двух нажатий кнопок на одной панели обновлений? - PullRequest
0 голосов
/ 02 июля 2018

Итак, у меня здесь есть раздел дизайна формы, где есть кнопка «сохранить» и кнопка «сетка слотов». AsyncPostBackTrigger реализован на кнопке Сохранить для панели обновления. Моя проблема заключается в том, что после выбора значений из списка, который связывается при загрузке страницы, всякий раз, когда я нажимаю кнопку «btnshowslotgrids», список теряет все выбранные значения. Что я должен сделать, чтобы предотвратить это?

  <asp:UpdatePanel ID="Upd" runat="server" UpdateMode="Conditional">
<ContentTemplate>
    <table style="width: 100%; margin: auto; min-height: 500px;">
     <tr>
       <td>
           <asp:ListBox SelectionMode="Multiple" ClientIDMode="Static" 
           ID="lbEduType" runat="server"
           CssClass="multiselect form-control" DataValueField="Id" 
           DataTextField="Name" multiple="multiple"></asp:ListBox>
       </td>
        <td>
         <asp:Button ID="btnshowslotgrids" Text="Slot Grids" runat="server" 
         CssClass="btn btn-primary" OnClick="btnshowslotgrids_Click"/>
       </td>
     </tr>
    </table>  
<table id="tblAssSubjSave" runat="server">
  <tr>
    <td>
   <asp:Button runat="server" ID="btnSaveAssessment"  Text="Save Slot" 
    ValidationGroup="vgAssessments" OnClick="btnSaveAssessment_Click" />
   <asp:Button runat="server" ID="btnCancelAssessment" Text="Reset" 
   CausesValidation="false"    OnClick="btnCancelAssessment_Click" />
  </td>
  </tr>
 </table>
  </ContentTemplate>
         <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnSaveAssessment" />
        </Triggers>
  </asp:UpdatePanel>

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Вы можете сохранить значение в скрытом поле и затем заполнить список после обратной передачи страницы.

0 голосов
/ 31 августа 2018

Вы должны привязать свой список в событии! IsPostback.

if (!IsPostBack)
{
    //bind your listbox here
}

Что происходит в вашем случае, всякий раз, когда вы нажимаете на кнопку, сначала она вызывает событие загрузки страницы и повторно привязывает ваш источник списка, поэтому выбранные вами значения будут потеряны.

...