当页面部分回发时,我遇到了一些问题。我有一些单选按钮,我正在通过javascript制作tr display =“”和display =“none”。之后我添加了gridview。 gridview包含empltyTemplate和footer以添加新行。但是当我在网格视图中添加行时,用户控件被回发,因此所有tr变为displa =“none”,这是加载页面时的默认值。我试图在更新面板中保留gridview但它不起作用。我的控件的层次结构如下所示。
Level-1-Master page ---> Level-2-master page ---> Level 3-.aspx page ---> Level-4-user control ---> Level-5 - 多个手风琴 - > Level-6:每个手风琴中有1个用户控制..
代码太长了,不能过去。我试图将更新面板保持在用户控件(级别6)内,但它无法正常工作。经过一些谷歌搜索后,我发现更新窗格如果在accrdian中不起作用。因此我尝试将所有accrdian保留在更新面板中,但在这种情况下.aspx页面不会回发,但所有放在accrodian中的用户控件都会回发,因此选择设置为默认加载时。
我希望在回发最后一级用户控件时保留所有选择。
理解这种情况非常复杂,但事情就是这样......如何解决我的问题?
答案 0 :(得分:3)
对来自JavaScript的DOM所做的更改不会保留为跨PostBack;服务器不知道你做了什么,因此无法跟踪它。
要解决此问题,您需要在服务器端使用Callback或Ajax调用来获取JS代码更新状态 - 或者让它更新反映标记状态的表单中的隐藏输入字段,以及让服务器查看并相应地更新呈现的HTML。