簡體   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