问题描述
环境vs2005+ajaxControlToolKit1.0---------------------------------------------状况在masterPage里有一个ScriptManager和一个覆盖整个页面的UpdatePanel(也就是所有控件除了ScriptManager都在这个UpdatePanel内)在masterpage中使用了AlwaysVisibleControlExtender,RoundedCornersExtender,CollapsiblePanelExtender普通page上使用了Accordion和CascadingDropDown后点Asp:Button就会出Invalidpostbackorcallbackargument.的错误。普通page没有使用其他ajax控件,button工作正常。---------------------------------------------错误代码Invalidpostbackorcallbackargument.Eventvalidationisenabledusing<pagesenableEventValidation="true"/>inconfigurationor<%@PageEnableEventValidation="true"%>inapage.Forsecuritypurposes,thisfeatureverifiesthatargumentstopostbackorcallbackeventsoriginatefromtheservercontrolthatoriginallyrenderedthem.Ifthedataisvalidandexpected,usetheClientScriptManager.RegisterForEventValidationmethodinordertoregisterthepostbackorcallbackdataforvalidation.--------------------------------------------------------------------设置enableEventValidation="false"后虽然button可以工作,但是Accordion不能正常工作,显示js的页面上有错注:CascadingDropDown包含在Accordion中,无论button是否包含在Accordion中都出上面的错--------------------------------------------------------------------思路:http://www.codeplex.com/AtlasControlToolkit/WorkItem/View.aspx?WorkItemId=8103这篇文章中描述的问题应该和我雷同,但似乎没有好地解决方案http://odetocode.com/Blogs/scott/archive/2006/03/20/3145.aspx这篇文章也许讲述了问题的原理我还尝试了外国某文章将如下自定义控件加入masterPage,无效,可能是问题不同,可能是我加的方法不正确,publicpartialclassUserControls_FullLoadRequiredForPostBack:System.Web.UI.UserControl{protectedvoidPage_Load(objectsender,EventArgse){Page.ClientScript.RegisterHiddenField("PageLoadedHiddenTxtBox","");stringscriptCommand="document.getElementById('PageLoadedHiddenTxtBox').value='Set';";stringpreSubmitCommad="varloaded=document.getElementById('PageLoadedHiddenTxtBox').value;if(loaded=='Set'){returntrue};alert('pleasewaitforpagetocompletelyloadbeforesubmittingtosite.');returnfalse;";Page.ClientScript.RegisterStartupScript(this.GetType(),"onLoad",scriptCommand,true);Page.ClientScript.RegisterOnSubmitStatement(this.GetType(),"OnSubmit",preSubmitCommad);}}已经连续工作快20个小时,实在没精力继续钻研了。在google看到有国人似乎也遇到过这个问题,不过page打不开。望高手指点,只要解决问题,分不是问题。
解决方案
解决方案二:
备注:刚才作了一个小测试page中含有AccordionPane,button可以正常工作,所以问题就是出在CascadingDropDown上。可能是它的设计必需要调用webService来填充item
解决方案三:
用UpdatePanel总是出现这种或那种的错误,非常恶心,坚决不用这个控件。
解决方案四:
顶一个CascadingDropDown需要调用webService
解决方案五:
俺也常用这些玩意,不是很爽,但起码没出什么茬子
解决方案六:
坚持不住了,明天再来看。希望有高手光顾。
解决方案七:
UpdatePanel是没问题的,但Toolkit的话是由第三方开发的,质量参差不齐,是否使用就自己决定吧。如果你觉得比你自己开发一个更不爽的话,那么你可以选择自己开发,或者干脆就不用。
解决方案八:
UpdatePanel好像很烂
解决方案九:
还没有好的解决方案马?看样子是要自己写了。。。
解决方案十:
自己写吧
解决方案十一:
再顶顶自己写每组都需要实现一个usercontrol.如果要开发一个通用的复杂度就上去了,比如一对多的dropdownlist榜定孟子,思归~~来救命哦好久不上csdn怎么你们的影子都没了