[英]asp.net UpdatePanel not working correctly
我使用UpdatePanel刷新帶有一些搜索結果的數據網格,但無法正常工作,整個頁面都回發。 我希望有人能幫助我,讓它無法正常工作。 。 謝謝。 這是我的代碼:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" class="pageTitle" valign="top">
<twc:LocalizedLiteral Text="CRMcontxt6" runat="server" />
</td>
</tr>
<tr align="left" style="background-color: #9bbbe3">
<td align="left" colspan="3">
<asp:Label ID="lblSearch" Height="15" runat="server" Font-Bold="true" Font-Size="11"></asp:Label>
<asp:TextBox Width="500px" ID="Search" autoclick="BtnSearch" runat="server" CssClass="boxDesign" />
<asp:LinkButton ID="BtnSearch" runat="server" CssClass="save" />
</td>
</tr>
</table>
<asp:datagrid id="searchresults" runat="server">
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnSearch" />
</Triggers>
</asp:UpdatePanel>
一些解決方案:
一種。 嘗試在UpdatePanel中提供UpdateMode = Conditional
,然后嘗試(提供觸發器時必須定義此條件)
b。 嘗試刪除<table>
,然后將其替換為<div>
,有時Update Panels與table標記不兼容。
C。 如果上述方法不起作用,請首先嘗試刪除觸發器和更新模式條件,然后查看是否可行。 因為如果這不起作用,則意味着更新面板中的內容有問題。 您可能要從一些控件開始,以深入研究問題。
d。 我看到用戶控件被調用-檢查這些用戶控件中的更新面板是否放置正確。
這看起來像是一個熟悉的.NET Bug。 在LinkButton上設置ClientIDMode =“ AutoID”應該可以解決此問題(順便說一下,您可以刪除觸發器。不需要這樣做)。
在UpdatePanel中使用它:
UpdateMode="Conditional" ChildrenAsTriggers="true"
檢查您的HTML源代碼是否沒有2個或多個<form>
標記。 一個asp.net頁通常應該只有一個<form>
標記。
盡管到目前為止,這個問題一直沒有得到解答,但我遇到了類似的問題,但是發現了更新面板無法正常工作的原因:
當您在某段HTML中有一個<form>
標記,然后將該HTML片段插入母版頁已經存在的<form>
標記中時,就會遇到問題。 每次運行母版頁的子頁並單擊“提交”按鈕時,都不會執行該按鈕應該運行的代碼。 取而代之的是,盡管有更新面板,整個頁面還是會刷新,而且還可能在頁面的URL中添加查詢字符串。
母版頁面的嵌套<form>
標記是造成這種情況的原因。 刪除多余的<form>
標記后,一切都應正常工作。
希望這對某人有幫助。
您錯過了觸發事件。 您的觸發器應如下所示
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnSearch" EventName="Click" />
</Triggers>
不要忘記將更新面板的UpdateMode
屬性設置為Conditional
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.