Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET部分回发的页面更新中会发生什么情况?_Asp.net_Jquery Ui_Updatepanel_Partial Postback - Fatal编程技术网

ASP.NET部分回发的页面更新中会发生什么情况?

ASP.NET部分回发的页面更新中会发生什么情况?,asp.net,jquery-ui,updatepanel,partial-postback,Asp.net,Jquery Ui,Updatepanel,Partial Postback,当客户端收到UpdatePanel的响应并在页面上呈现时,会发生什么情况 这个问题的动机是为在和中提出的问题找到适当的解决方案。本质上,当jQueryUI日期选择器连接到UpdatePanel中的TextBox并在该UpdatePanel更新时打开时,会发生奇怪的事情 并建议只不过是这样: document.getElementById('updatePanelContainer').innerHTML = responseHtml; 但我在中尝试过,日期选择器完全停止工作,除了“完成”按钮;

当客户端收到
UpdatePanel
的响应并在页面上呈现时,会发生什么情况

这个问题的动机是为在和中提出的问题找到适当的解决方案。本质上,当jQueryUI日期选择器连接到
UpdatePanel
中的
TextBox
并在该
UpdatePanel
更新时打开时,会发生奇怪的事情

并建议只不过是这样:

document.getElementById('updatePanelContainer').innerHTML = responseHtml;
但我在中尝试过,日期选择器完全停止工作,除了“完成”按钮;我在部分回发中看到的行为是,日期选择器仍然可以工作,但是它的状态被从它下面移除。当我用jQueryUI非精简代码调试它时,我看到
drawYear
drawMonth
属性丢失了它们的值(变成0)

在玩Firebug和观看部分回发时,我注意到页面中有以下变化:

  • Firebug的DOM选项卡中的一些输入属性消失,例如:
    • accessKeyLabel
    • 父元素
    • 阴蒂
    • 客户左
    • 客户端
    • 客户宽度
    • 形式
    • 下一步
    • 越界
    • 偏左
    • 抵销父母
    • 偏置
    • 网外宽度
    • 父节点
    • 以前的元素兄弟
    • 以前的兄弟姐妹
    • 卷轴高度
    • 卷轴宽度
  • 一堆隐藏的
    span
    元素被添加到页面底部,其中包含包含ASP.NET信息的隐藏字段(看起来类似于uu VIEWSTATE)
  • update
    元素的内容会以较小的方式发生更改(可能是空格还是制表符)

更新:我设法使复制程序正常工作;关键是在重新创建绑定到的输入后重新初始化日期选择器。请参阅上面提到的JSFIDLE的示例。不过,我还是想知道,部分回发是否有什么特别的作用。

部分回发只是在UpdatePanel中为div发回适当的HTML,然后用响应替换该HTML。完整的回发生命周期仍然发生在服务器上,因此在更新UpdatePanel之外的控件时必须小心,因为这些更改不会反映在客户端上,但可能会产生意外的副作用。

这可能不是您想要的答案。。。但是不要使用
UpdatePanel
。它试图简化ajax,但却使其复杂得多。我不同意@jrummell。。。UpdatePanel可能不是100%的AJAX替代品,但是当情况需要它们时,它们是一个很好的工具。所以你的意思是,部分回发的客户端操作只不过是从服务器接收一堆HTML,并将
UpdatePanel
innerHtml
属性设置为新的HTML?正确。如果您使用tamperdata/firebug/fiddler,很容易看到。响应只是一个管道分隔的字符串,表示响应、要更新的更新面板以及要更新面板的原始HTML。