如何防止一个更新面板中的两个按钮单击事件完成回发?

问题描述 投票:0回答:2

所以,我这里有一个表单设计部分,其中有一个“保存”按钮和一个“插槽网格”按钮。 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>
c# asp.net updatepanel ajaxcontroltoolkit
2个回答
0
投票

您应该在!IsPostback事件中绑定您的列表框。

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

在您的情况下发生什么,每当您点击按钮时,首先它将调用页面加载事件,它将重新绑定您的列表框源,因此您选择的值将丢失。


0
投票

您可以将值存储在隐藏字段中,然后在页面回发后重新填充列表框。

© www.soinside.com 2019 - 2024. All rights reserved.