2013-08-28 58 views
0

我已經在Asp.net中創建了一個示例程序,該程序通過單擊按鈕來更新時間。這一次顯示在一個標籤中。按鈕和和標籤都在更新面板中說upd1。 以下是aspx代碼IE 10中的更新面板

<script type="text/javascript" > 
function fnhn() { 

    __doPostBack("upd1",""); 
    return false; 
} 
</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
    <asp:ScriptManager id="ScriptManager1" runat="server" EnablePageMethods ="true" > </asp:ScriptManager> 
<div> 
<asp:UpdatePanel ID="upd1" runat ="server" ><ContentTemplate > 
<asp:label runat="server" id="lbl_c" ></asp:label> 
    <asp:button runat="server" id="btn_b" Text="Click" /> 
</ContentTemplate> 
</asp:updatepanel> 
</div> 
</form> 
</body> 

以下是源代碼。

Partial Class _Default 
Inherits System.Web.UI.Page 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    lbl_c.Text = Date.Now.ToString 
End Sub 
End Class 

現在我面對的問題如下。我可以在點擊按鈕時更新這個時間,而不是在IE 10以外的任何瀏覽器中回發。在IE10中,我的整個頁面都會刷新。我顯然不想發生。 Plz幫助我們。

在一個線程中我也通過以下來了解一下IE10的用戶代理。

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init 
    If Request.UserAgent.ToLower.ToString.Contains("msie 10.0") Then 
     Page.ClientTarget = "uplevel" 
    End If 
End Sub 

這沒有幫助我擺脫這個問題。 任何評論建議和解決方案都是有價值的。

+0

'如果Request.UserAgent.ToLower.ToString.Contains( 「MSIE 10.0」)'....警告:** **非常謹慎使用用戶代理字符串來識別瀏覽器。將它用於任何重要的事情被認爲是不好的做法,因爲UA字符串可能對你說謊,因爲它在用戶的控制之下。另外,IE11 UA字符串完全不同,因此當用戶升級時,您的支票將無法使用。 – Spudley

回答

0

您可以檢查您的IE10是否允許Cookie?如果您在某些時候禁用了Cookie,則會話將無法工作(如果基於Cookie),因此AJAX會導致完整的回發。

0

您是否嘗試添加EnablePartialRendering?這應該是默認設置,但可能在其他地方被覆蓋。

<asp:ScriptManager id="ScriptManager1" runat="server" 
      EnablePageMethods="true" EnablePartialRendering="true" />