C# updatepanel中的动态控件未在Opera Mobile中发布

C# updatepanel中的动态控件未在Opera Mobile中发布,c#,asp.net,opera,C#,Asp.net,Opera,我在一个页面中添加了一个动态UpdatePanel,其中的ContentTemplateContainer中有更多的动态控件。ContentTemplateContainer上禁用了ViewState,因为可以在回发时从HiddenField中的单个ID重新创建整个状态,如下所示: 问题是Opera Mobile没有发布隐藏字段,导致我的页面在尝试解析该值时引发异常。它只在更新面板外发布控件,如ASP.NET为viewstate和事件目标添加的隐藏字段。当我在Dragonfly中单步执行回发代码

我在一个页面中添加了一个动态UpdatePanel,其中的ContentTemplateContainer中有更多的动态控件。ContentTemplateContainer上禁用了ViewState,因为可以在回发时从HiddenField中的单个ID重新创建整个状态,如下所示:

问题是Opera Mobile没有发布隐藏字段,导致我的页面在尝试解析该值时引发异常。它只在更新面板外发布控件,如ASP.NET为viewstate和事件目标添加的隐藏字段。当我在Dragonfly中单步执行回发代码时,我注意到document.forms[0].elements[]集合不包括我的控件,这是updatepanel代码循环生成回发请求的过程

其他浏览器发布的字段也不错,包括OperaMini和桌面Opera

知道这是怎么回事吗

谢谢你的帮助,
--尼克

既然你还没有发布一个例子,我只能给你一些一般的提示。我最好的猜测是Opera mobile的核心版本可能有一个已经在Opera desktop/Mini中修复的bug

确保表单中的标记是正确的-如果标记在某个地方的顺序错误,例如

<p><b></p></b>

它可能会混淆解析器,这种混淆的一个例子可能是表单关闭得太早,控件最终会“在”它之外。org服务可以帮助您发现此类问题

此外,出于同样的原因,请检查需要关闭的标记是否有关闭标记


元素是如何添加到表单的?它们是从一开始就在标记中,还是用JavaScript添加的?如果是后者,请尝试显式地将它们添加到表单本身(document.forms[x].appendChild()…而不是将它们添加到您认为在表单内部的元素中)。

可能是一个字段上发送的数据太多了?可能viewstate太大而无法发送?不,其他的帖子字段只有asp.net放在那里的那些,它们都很小,如您所见:ctl04:upReport | btnYearDown ctl04 | HiddenField:(事件目标:btnYearDown)事件参数:(视图状态):/WEPDWUKMTAYNJI0NMRK36QWP/1SSK2IWI0POQQZQQQ9XEQQXA4GIBIFCTM=(事件验证)/WEWAWWWWWWWLDWLMZJONCWKQHNELJDOMNAMIYE/WRXNQBW6BGF+++QNPNZBWLTTMOMDGDGW)找到了一些异步验证程序我把它修好了,但这不是问题所在。控件从一开始就在标记中。
<p><b></p></b>