2008-09-18 48 views
0

這是"Works on My Machine Certification Program"的理想選擇。LinkBut​​ton未在生產服務器上觸發

我有以下代碼爲一個LinkBut​​ton ...

<cc1:PopupDialog ID="pdFamilyPrompt" runat="server" CloseLink="false" Display="true"> 
    <p>Do you wish to upgrade?</p> 
    <asp:HyperLink ID="hlYes" runat="server" Text="Yes" CssClass="button"></asp:HyperLink> 
    <asp:LinkButton ID="lnkbtnNo" runat="server" Text="No" CssClass="button"></asp:LinkButton> 
</cc1:PopupDialog> 

它使用一個自定義的控制之前和內容格式化爲一個彈出式對話框後,簡單地添加代碼。 按鈕是一個HyperLink,因爲它執行JavaScript來隱藏對話框並顯示不同的對話框。 沒有按鈕是一個LinkBut​​ton,因爲它需要PostBack來處理這個值。

我沒有用LinkBut​​ton註冊的onClick事件,因爲我只是檢查IsPostBack是否爲真。在本地執行時,回發工作正常,一切順利。當發佈到我們的開發服務器時,按鈕在點擊時不執行任何操作。我在本地或開發服務器上測試時使用相同的瀏覽器。

我最初的想法是,驗證器可能會阻止PostBack發射。我確實在頁面的另一部分使用了幾個驗證器,但它們全部被分配給一個特定的驗證組,而這個驗證組沒有被分配給LinkBut​​ton。然而問題是爲什麼它在本地而不是在開發服務器上工作。

任何想法?

回答

1

檢查生產中發佈的html,並確保它具有__doPostback(),並且沒有全局方法來監視點擊和取消事件。除此之外,如果你認爲它可能與驗證有關,你可以嘗試添加CausesValidation或其他任何錯誤,看看是否有幫助。否則,「在我的機器上工作」錯誤是一種很難調試而不知道DEV和PROD的配置。

+0

這解決了這個問題。我知道「在我的機器上工作」的問題正在複製。任何關於我的本地和開發服務器之間的差異的理論都會導致這種類型的問題? – Chris 2008-09-18 21:29:29

0

我對ValidationGroup的理解是,沒有指定組的按鈕會觸發頁面上的所有驗證器。你有沒有嘗試給LinkBut​​ton一個不同的ValidationGroup?

1

我有類似的問題。我創建了一個帶有updatePanel的表單,其形式是一些可以打開modalpopup Ajax擴展器的鏈接按鈕。他們工作得很好,直到我爲該網站添加身份驗證。之後他們根本沒有做任何事情。

閱讀你的解決方案我發現一些linkbuttons工作,他們是那些有CauseValidation明確設置(我只是把它放在那些我會做到這一點)。對所有其他鏈接按鈕添加CausesValidation =「false」後,允許它們在我通過身份驗證後正常工作。

感謝您的評論大家,它拯救了我的一天!

+0

爲我工作! – Arbaaz 2017-03-20 06:56:12

相關問題