0

当页面部分回发时,我遇到了一些问题。我有一些单选按钮,我根据这些单选按钮通过javascript制作 tr display="" 和 display="none" 。之后我添加行gridview。gridview 包含 empltyTemplate 和页脚以添加新行。但是当我在网格视图中添加行时,用户控件被回发,因此所有 tr 都变为 displa="none" ,这是加载页面时的默认值。我试图将 gridview 保留在更新面板中,但它不起作用。我的控件层次结构如下。

Level-1-母版页--->Level-2-母版页--->Level-3-.aspx页面--->Level-4-用户控制--->Level-5-多手风琴-->Level-每个手风琴的 6:1 用户控制..

代码太长,无法在这里过去。我试图将更新面板保留在用户控件(6 级)中,但它不起作用。经过一番谷歌搜索后,我发现如果更新窗格在 accrdian 内部,则它不起作用。因此,我尝试将所有 accrdian 保留在更新面板内,但在这种情况下,.aspx 页面不会回发,但放置在 accrodian 内的所有用户控件都会被回发,因此选择设置为默认加载。

我希望在回发最后一级用户控件时保留所有选择。

这种情况很难理解,但这就是事情的真相......如何解决我的问题?

4

1 回答 1

3

从 JavaScript 对 DOM 所做的更改不会跨 PostBack 保留;服务器不知道你做了什么,因此无法跟踪它。

为了解决这个问题,您要么需要使用回调或 Ajax 调用在服务器端更新 JS 代码状态,要么让它更新反映标签状态的表单中的隐藏输入字段,并让服务器查看那里并相应地更新呈现的 HTML。

于 2011-12-02T12:35:09.967 回答