我正在使用 jQuery 和 ASP.NET 来显示一个包含按钮的对话框。经过一番搜索,我通过添加更多 JavaScript 将对话框附加到表单中,使对话框中的按钮工作。
var dlg = $('#ctl00_ctl00_PageContent_PageContent__pnlPopup').dialog({
autoOpen: false,
height: 180,
width: 500,
modal: true,
draggable: true
});
dlg.parent().appendTo($('form:first')); // without this, controls in the dialog are non-functional
这工作正常,直到我打开对话框,关闭它,然后尝试在父页面上使用 ComboBox 或 LinkButton 之类的控件。此时我收到 ViewState 验证错误:
无法加载视图状态。正在加载视图状态的控制树必须与在先前请求期间用于保存视图状态的控制树匹配。例如,当动态添加控件时,回发期间添加的控件必须与初始请求期间添加的控件的类型和位置相匹配。
有没有办法解决?我一半明白它为什么会发生 - jQuery 正在改变文档的结构,但我不完全确定这如何/为什么会影响 ViewState。