我打電話的函數,而裏面Homescroll.ascx.cs從Homescroll.ascx如何更新面板內寫的Response.Write
,所以我就寫了Homescroll.ascx作爲 <%的Response.Write(滾動( )); %>
,但是這一切都是在更新面板,和我收到的錯誤。 所以是他們從homescroll.ascx調用函數homescroll.ascx.cs,而不是response.write()的任何其他方式。
我打電話的函數,而裏面Homescroll.ascx.cs從Homescroll.ascx如何更新面板內寫的Response.Write
,所以我就寫了Homescroll.ascx作爲 <%的Response.Write(滾動( )); %>
,但是這一切都是在更新面板,和我收到的錯誤。 所以是他們從homescroll.ascx調用函數homescroll.ascx.cs,而不是response.write()的任何其他方式。
如何使用語法 - <%= scroll() %>
?
<%=只是Response.Write的簡寫,並且如果R.W不起作用則不太可能解決問題。 – annakata 2010-10-06 13:37:05
需要更多的資料,但我會假設滾動將是一個客戶端功能,僅僅通過它的名字,你應該使用一個ScriptManager這樣的:
ScriptManager.RegisterClientScriptBlock(this,typeof(Page),"scrollScript","scroll();",true);
看到http://msdn.microsoft.com/en-us/library/bb350750.aspx獲取更多信息。如果你不想從後面的代碼中調用它,那麼根本不需要<%>或respoonse.write。只需將其包含在腳本標記中,並將其類型設置爲text/javascript。
<%= scroll() %>
將在UpdatePanel中工作,但<% Response.Write(scroll()) %>
不會。
流行的看法相反,<%= %>
顯示錶達式不正是意味着Response.Write
,並不像他們在ASP經典一樣。它們都在渲染階段執行。不同的是,顯示錶達式寫入HtmlTextWriter並不直接傳遞給渲染函數—到Response對象。通常這沒有任何區別。除了當您使用UpdatePanel時,它需要捕獲您的ContentTemplate的輸出,以便它可以以其特殊格式對輸出進行編碼。如果直接調用Response.Write
,則會繞過UpdatePanel執行的編碼並弄亂響應,以致無法在客戶端對其進行分析。
,當你這樣做是有幫助的異常時發生的錯誤:
Sys.WebForms.PageRequestManagerParserErrorException: 從服務器 收到的消息無法解析。對於 此錯誤的常見原因是當響應 通過電話修改的Response.Write(), 響應濾波器,的HttpModules,或 服務器啓用跟蹤。
UpdatePanel provides workarounds的作者在他的博客上。
Reponse.Write打破了一個UpdatePanel輸出,我的博客上講述一個可能的解決方案在這裏:http://timscyclingblog.wordpress.com/2013/03/07/asp-net-web-forms-response-write-in-an-updatepanel-dev-web/ 希望它可以幫助別人的未來,儘管它稍微偏離其刪除寫入要求主題給出的其他解決方案響應。
我用這個問題的一個簡單的解決方法是調用jQuery函數並且調用append()
而不是調用Response.Write()
。例如,假設我想更新裏面的UpdatePanel一些HTML文本並改變其文字,我會做這樣的事情:
隨着Response.Write()
,這將是這樣簡單:
Response.Write("[TextToBeAddedToHTML]");
但隨着jQuery的,它的有點複雜,你必須包括jQuery庫到HTML頁面:
ScriptManager.RegisterStartupScript(this, GetType(), "TextUpdate", "$(\"#[ID_OF_HTML_Element]\").append(\"<p>" + [TextToBeAddedToHTML] + "</p>\");", true);
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(@"<script type='text/javascript'>");
sb.Append("alert('Usuario agregado Correctamente.');");
sb.Append(@"</script>");
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "AddHideModalScript", sb.ToString(), false);
有什麼'scroll'方法的可見性,什麼是'Exception'文本? (或者更好的是,你能告訴我們堆棧跟蹤嗎?) – 2010-10-06 13:21:58