重新加载按钮单击

时间:2014-12-30 22:14:05

标签: c# asp.net ajax modalpopupextender

这是我的aspx:

<asp:Panel ID="pnl_updateClinicVisit" runat="server" CssClass="modalPopupClinicVisitEntry2" DefaultButton="bt_editClinicVisit_submit"  Style="display:none">
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Button AutoPostBack="false" UseSubmitBehavior="false" ID="AddMedicationChange" ClientIdMode="Static" runat="server" Text="Add Med Change" OnClick="AddMedicationChange_Click" />
            <asp:Panel ID="AddNewMedicationPanel" runat="server">
                <asp:TextBox ID="NewDrugName" OnTextChanged="NewDrugName_TextChanged" runat="server"></asp:TextBox>
                <asp:AutoCompleteExtender ID="NewDrugNameAutoCompleteExtender"
                    runat="server"
                    TargetControlID="NewDrugName"
                    MinimumPrefixLength="1"
                    EnableCaching="false"
                    CompletionSetCount="1"
                    CompletionInterval="500"
                    ServiceMethod="GetDrugs">
                </asp:AutoCompleteExtender>
                <asp:DropDownList OnSelectedIndexChanged="NewDrugChange_SelectedIndexChanged" ID="NewDrugChange" runat="server">
                    <asp:ListItem>Drug +</asp:ListItem>
                    <asp:ListItem>Drug -</asp:ListItem>
                    <asp:ListItem>Dose ↑</asp:ListItem>
                    <asp:ListItem>Dose ↓</asp:ListItem>
                </asp:DropDownList>
                <asp:Button AutoPostBack="false" UseSubmitBehavior="false" ID="SubmitMedChange" runat="server" Text="Add to Visit" OnClick="SubmitMedicationChange_Click" />
            </asp:Panel>
            <asp:ModalPopupExtender ID="updateClinicModalPopupExtender" runat="server" TargetControlID="bt_editClinicVisit_dummy"
                PopupControlID="pnl_updateClinicVisit" CancelControlID="bt_editClinicVisit_cancel"
                DropShadow="true" BackgroundCssClass="modalBackground" />
        </ContentTemplate>
    </asp:UpdatePanel>          
 </asp:Panel> 

由于某些原因,当我点击&#34; AddnewMdication&#34;和#34; SubmitMedChange&#34;纽扣。当我有AutoPostBack=false UseSubmitBehavior=false时,事件会触发,然后页面会重新加载。如果我没有这些属性,那么页面会在事件发生之前重新加载。如何在此模式中获得AJAX功能?

1 个答案:

答案 0 :(得分:0)

尝试将Button设为AsyncPostBackTrigger。您可以通过添加Triggers部分并将UpdatePanel声明为条件更新来实现此目的。

例如

<asp:UpdatePanel ID="UpdatePanel1" runat="server"
    UpdateMode="Conditional">
    <Triggers>        
        <asp:AsyncPostBackTrigger ControlID="AddMedicationChange" EventName="Click" />
        <asp:AsyncPostBackTrigger ControlID="SubmitMedChange" EventName="Click" />
    </Triggers>    
    <ContentTemplate>        
        <%-- Your code here --%>
    </ContentTemplate>
</asp:UpdatePanel>

这应该做的是明确声明这两个按钮是异步。

如果这不起作用,请将相关代码发布到您的两个按钮OnClick事件吗? AddMedicationChange_ClickSubmitMedicationChange_Click

如果您尝试在异步后退期间与代码隐藏中的UpdatePanel之外的控件进行交互,则可能会发生奇怪的事情。