2012-10-13 92 views
1

即時通訊使用UpdatePanel刷新包含某些搜索結果的數據網格,但無法正常工作,並且整個頁面都會回傳。我希望有人能幫助我,不能讓這個工作正確。 。謝謝。這裏是我的代碼:asp.net 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> 
+0

你是否在頁面中添加了scriptmanager? –

回答

0

你錯過了觸發事件。你的觸發器應該是這樣的

<Triggers> 
      <asp:AsyncPostBackTrigger ControlID="BtnSearch" EventName="Click" /> 
</Triggers> 

不要忘記將UpdateMode attrivute更新面板設置爲Conditional

這裏是一個參考:: Using Triggers in an UpdatePanel in ASP.NET 4.0 C#

+0

感謝您回答Krihandu。如果你看看我的代碼的底部,你可以看到我包含觸發事件。我試圖把事件名稱「點擊」,「OnClick」ECC但沒有任何作品。即時通訊使用其他擴展器在同一頁面上,他們工作正常。任何線索? tnx – DaKodar

+1

如果我沒記錯的話,你不需要觸發已經在UpdatePanel中的控件。此外,您的datagrid標記未關閉 – codingbiz

+0

不要忘記將更新面板的'UpdateMode'屬性設置爲'Conditional'。順便說一句,我找不到你的代碼中的任何觸發事件。 –

2

一些解決方案:

一個。嘗試在UpdatePanel中給予UpdateMode = Conditional並嘗試(當你給觸發器 你必須定義這個)

灣嘗試刪除<table>,並將其替換爲<div>,有時更新面板對錶格標籤不友好。

c。如果上述不起作用,請先嚐試刪除觸發器和更新模式條件,然後查看是否有效。因爲如果這不起作用,則意味着更新面板中的內容有問題。您可能想從一些控件開始深入瞭解您的問題。 d)。我看到用戶控件被調用 - 檢查是否有正確放置的用戶控件內的更新面板。

+0

嗨,我嘗試了你提出的解決方案,但沒有讓這個控制按照它的設想工作。我會按照你的建議檢查更新面板中的內容。感謝您的幫助 – DaKodar

1

這看起來像一個熟悉的.NET錯誤。在LinkBut​​ton上設置ClientIDMode =「AutoID」應該修復它(順便說一句,你可以刪除觸發器,這是不需要的)。

0

使用此在的UpdatePanel:

UpdateMode="Conditional" ChildrenAsTriggers="true" 
1

檢查你的HTML源沒有2個或更多<form>標籤。一個asp.net頁面通常應該只有一個<form>標籤。

儘管這個問題一直沒有答案被長問到目前爲止,我遇到了類似的問題,但發現更新面板的原因不工作:

當你有一些片HTML的<form>標籤和然後將該HTML片段插入母版頁的現有<form>標籤內,則會出現問題。每次運行母版頁的子頁面並單擊提交按鈕時,該按鈕應該運行的代碼將不會執行。相反,儘管有更新面板,整個頁面仍會刷新,並且還可能在頁面的URL中添加查詢字符串。

母版頁的嵌套<form>標籤是造成這種情況的原因。只要你刪除額外的<form>標籤,一切都應該正常工作。

希望這可以幫助別人。

+0

嗨,我已經編輯了您的答案,以減少講故事,並把它放在一個更重要的格式,而不是與您的經驗相關聯。這對未來的讀者更有幫助。 – trincot