2013-05-06 48 views
0

這聽起來很簡單,但我一直在努力。在後面的代碼中使用jQuery - 回調刷新頁面

我有一個asp.Net頁面和頁面後面的相應代碼。我的用戶輸入一個新的密碼,然後頁面後面的代碼檢查是否可以(足夠長,有一些正則表達式來檢查不允許的字符等)。如果密碼正常,後面的代碼將執行sql查詢來更新數據庫。

如果查詢成功,我想隱藏密碼輸入div並顯示password-successful-create div,這給了我的用戶進一步的指示。我一直使用jQuery在php中輕鬆完成此操作。

我的問題:我剛剛描述的工作都是在服務器端完成的。我可以使用ClientScriptManager(RegisterStartupScript)將相應的jQuery腳本發送回客戶端。細膩而華麗,但回到服務器的回調會刷新頁面,因此頁面會刷新並恢復爲原始外觀。如果仔細觀察,您可以看到div隱藏起來並以我想要的方式顯示,但在很短的時間內,它們會回到原來的樣子 - 我假設因爲回調會刷新頁面。

當正在執行對服務器的調用時,是否可以在頁面後面的代碼中顯示/隱藏DOM元素?任何幫助表示讚賞。

編輯

這是asp:按鈕控制本身,這是問題。我在下面的代碼中得到相同的行爲,它根本不使用頁面後面的代碼。如果我用普通的HTML輸入控件替換asp:按鈕控件,它可以正常工作。

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 

<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> 

<script type="text/javascript"> 

     $('document').ready(function() { 

     $('.MyButton').click(function() { 
      $('#MyTable').toggle(); 
     }) 

    }) 

</script> 

</asp:Content> 

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 

<asp:Button ID="Button1" runat="server" Text="Button" class="MyButton" /> 

<table id="MyTable" > 
    <tr> 
     <td>This</td> 
     <td>is</td> 
    </tr> 
</table> 
</asp:Content> 
+0

可能的重複http://stackoverflow.com/questions/11714019/asp-net-hello-world-ajax-post – 2013-05-06 22:16:27

回答

0

在後面使用類似代碼:

if (IsPostBack) 
{ 
    // show/hide elements you need based on the processing results 
} 

這是假設你的元素顯示/隱藏實際上是ASP.NET控件。如果沒有,您可以將它們放在<asp:Panel>控件中,並管理正在顯示的內容。

+0

感謝您的回覆。好的建議,但事實證明,asp:按鈕(具有runat =「server」)屬性本身就可以完成。我用一個例子編輯了我的問題。 – Stanton 2013-05-06 22:20:28