ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: index (Ajax TabContainer动态添加TabPanel 出的问题)

ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: index (Ajax TabContainer动态添加TabPanel 出的问题)异常:ArgumentOutOfRangeException:指定的参数已超出有效值的范围。参数名:index 指定的参数已超出有效值的范围。参数名:index说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.ArgumentOutOfRangeException:指定

ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: index (Ajax TabContainer动态添加TabPanel 出的问题)

异常:ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: index 

指定的参数已超出有效值的范围。
参数名: index

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。
参数名: index

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:

 

[ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。

参数名: index]

   System.Web.UI.ControlCollection.get_Item(Int32 index) +75

   AjaxControlToolkit.TabPanelCollection.get_Item(Int32 index) +44

   AjaxControlToolkit.TabContainer.LoadClientState(String clientState) +252

   AjaxControlToolkit.ScriptControlBase.LoadPostData(String postDataKey, NameValueCollection postCollection) +94

   AjaxControlToolkit.TabContainer.LoadPostData(String postDataKey, NameValueCollection postCollection) +60

   AjaxControlToolkit.ScriptControlBase.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) +36

   System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +896

   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2533

错误:指定的参数已超出有效值的范围。参数名: value

Ajax TabContainer动态添加TabPanel 指定的参数已超出有效值的范围

Ajax Asp.Net中有一个新控件叫TabContainer,在这个控件里面是可以放很多个TabPanel的,但是不知道为什么这个 TabPanel的动态添加有些问题,添加是没问题的,但是当尝试着向新添加的tabPanel中动态添加其他控件比如ImageButton时,是会有异常的:[ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: value 莫名其妙,页面上任何一个控件进行postback都提示此异常。

最后发现:

代码位置放错了,我放在了Page_load中。放在   protected void Page_Init(object sender, EventArgs e)中,就可以.

研究了一下几个事件的发生时间及作用:

页 事 件

典 型 用 场

Page_PreInit

使用IsPostBack属性确定是否是第一次处理该页;创建动态控件;动态设置Theme属性;读取或设置配置文件属性值等

Page_Init

读取或初始化控件属性

Page_Preload

事件在所有回发数据处理之后但在 Load 事件之前引发

Page_Load

读取和更新控件属性

Control events

处理特定事件,如 Button 控件的 Click 事件

Page_PreRender

对页的内容进行最后更改

Page_Unload

执行最后的清理工作,例如关闭打开的文件和数据库连接等

 

page_load page_init 的区别与典型应用:

区别:

“Page_Init:是在页面未加载之前,也就是在页面初始化之前,在Page_Load之前调用的,可以在控件加载之前做一些客户端检测呀这些操作等。但这个事件对于当前用户来说,只会进行一次,也就是第一次访问这个页面的时候,其运行一次。
Page_Load:
Page_Init之后运行(废话),用于加载控制以及页面的其它内容。客户端每刷新或是提交一次,Page_Load事件就重新绘制页面,将当前页面当新页面来处理。”
应用:

比如说,Page_Init里运行计数的代码,这样这个页面被同一个用户不停的刷或是操作的时候,其点击始终是1次,这样计数就比较科学一些。当然,不能防止去了别的页面再回来的情况了。
还有比如做网站的访问统计,记录IP访问以及网站总的页面访问次数,都可以利用。

完了,看看,应该会有些效果….嘿嘿


 



今天的文章ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: index (Ajax TabContainer动态添加TabPanel 出的问题)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/29470.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注