【问题标题】:ASP.NET web forms: UpdatePanel no-js fallback for AutoPostback?ASP.NET Web 表单:AutoPostback 的 UpdatePanel no-js 后备?
【发布时间】:2017-03-07 22:27:51
【问题描述】:

我有一个UpdatePanel,我决定尝试一下,我认为当关闭javascript 时,它的所有行为都会由asp.net 机制处理。其中一种行为是在更改下拉列表或复选框时进行一些 UI 更改。这些更改是显示表单的部分或更改某些<asp:Label> 控件的文本。启用 JS 后,复选框上的 AutoPostback="true" 属性会使其更改事件按照需要更新表单。但是,当 JS 未启用时,它什么也不做——我希望它恢复在我开始使用 UpdatePanel 之前的那种行为——即每次使用更新的服务器数据刷新页面。是否可以对 UpdatePanel 属性进行任何调整以实现这种后备解决方案?

(不,这不是手头工作的真正要求,但我希望 asp.net 的服务器控件首先会自动解决此类问题,所以我想知道有没有办法。)

【问题讨论】:

标签: asp.net ajax updatepanel autopostback


【解决方案1】:

禁用 JavaScript 时 ASP.net 自动回发属性和功能不起作用的原因是它实际上利用 JavaScript 代码来执行其功能。 具体来说,它会生成以下 JavaScript 代码:

一个。一个名为

的 Java 脚本方法
__doPostBack (eventtarget, eventargument)

b.两个名为 __EVENTTARGET

的隐藏变量
__EVENTARGUMENT

c。 OnChangeJavaScript 事件到控件

如果您使用浏览器的调试器并搜索它们,您将看到它们是如何实现的。 这是一个很好的资源,可以进一步详细说明: http://www.dotnetspider.com/resources/189-AutoPostBack-What-How-works.aspx

回发基本上是重新提交页面请求,但保留更新面板控制哪些部分得到更新的视图状态。

要回答您的问题,没有启用 Javascript 就无法完成 AJAX 类型功能

【讨论】:

  • 谢谢,但我希望他们能够让它发挥作用,或者启用设置以将内容包含在 UpdatePanel 中以执行回发指令,就像在 UpdatePanel 之外编写时那样。这将扩展各种边缘设备的功能,并使其不必为类似的东西编写特殊代码。如果有人真的不得不这样做,我想有办法解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
  • 2012-06-23
  • 2011-07-06
  • 1970-01-01
相关资源
最近更新 更多