繁体   English   中英

如何在单击按钮时阻止更新面板刷新?

[英]How do I stop an update panel from refreshing on button click?

我是一个更新面板,其中包含几个相关的下拉列表。 单击“提交”按钮后,面板将刷新,并且下拉菜单将重置。 用户参数丢失。 有没有一种方法可以添加代码来阻止更新面板刷新,而我可以将其包含在按钮单击事件中?

更新面板:

<asp:ScriptManager ID="ScriptManager1" runat="server" >
                    </asp:ScriptManager>
                    <asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="True"     UpdateMode="Conditional">
                        <ContentTemplate>
                            <li class="small_link"> ..........
 <li class="small_link">
                                    <div class="li_div">
                                        <asp:Button ID="btnInventoryRpt" runat="server" Text="Load Report" OnClick="btnInventoryRpt_Click"
                                        CausesValidation="false" UseSubmitBehavior="False"  />
                                    </div>
                                </li>
                            </ContentTemplate>            
                        </asp:UpdatePanel>

按钮单击事件:

protected void btnInventoryRpt_Click(object sender, EventArgs e)
    {

            load_inventory_report();

    }

在我看来,您是在页面加载事件中绑定下拉列表,但是却忘记了页面回发。

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {                
            //Bind your drowdown list here
        }
    }

但是可以确定使用更多代码。

感谢您的帮助。 我能够使用AsyncPostBackTrigger完成此操作。 如果还有其他人遇到此问题,这是一个很好的解释。

http://msdn.microsoft.com/zh-CN/library/system.web.ui.asyncpostbacktrigger%28v=vs.110%29.aspx

在您的asp.net页中,从updatepanel标记中删除ChildreAsTrigger属性。 您只需要UpdateMode =“ Conditional”即可强制进行更新

<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional" />

在您的按钮单击事件中,您可以随后强制进行更新

protected void btnInventoryRpt_Click(object sender, EventArgs e)
{
    load_inventory_report();
    UpdatePanel2.Update();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM