已添加项。字典中的关键字

为ASPNETAJAX的TabContainer 动态添加TabPanel,页面回发后出现:已添加项。字典中的关键字:“Value”所添加的关键字:“Value”错误,

在 System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)

在 System.Collections.Hashtable.Add(Object key, Object value)
在 System.Collections.Specialized.OrderedDictionary.Add(Object key, Object value)
在 System.Web.UI.WebControls.DataKey.LoadViewState(Object state)
在 System.Web.UI.WebControls.DataKey.System.Web.UI.IStateManager.LoadViewState(Object state)
在 System.Web.UI.WebControls.GridView.LoadDataKeysState(Object state)
在 System.Web.UI.WebControls.GridView.LoadControlState(Object savedState)
在 System.Web.UI.Control.LoadControlStateInternal(Object savedStateObj)
在 System.Web.UI.Page.LoadAllState()
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
 

解决办法:

      让TabPanel的ID唯一(每次生成都不一样),我生成了guid给他做ID.问题就解决了。

      不过现象也挺怪的,开发用的机器没有问题,发布到其它机器出现这个问题。

可能原因:

      动态添加的TablePanel,需要在TabContainer 的Init事件中创建,并且PostBack时也要创建,可能PostBack回来时被调用了多次或者上次创建的控件信息还在。没搞清楚,有待研究。

原文地址:https://www.cnblogs.com/seaboy8899/p/1353980.html