“无法找到带有id的控件,或者在回发后将不同的控件分配给相同的ID。”错误

时间:2014-01-21 07:25:25

标签: c# asp.net telerik telerik-grid

web-application.NET framework 4.5代码C#后面有代码。

我正在使用RadGrid telerik Asp.Net Ajax control。我在dynamically事件中code behind创建PageInit并将其添加到aspx文件中定义的div statically

现在,对于每一行,我都有一个button,用于使用JQuery脚本展开和折叠行。

我在页面上也有一个RadCalendar,我根据所选日期范围提取记录。

现在,问题是,如果我从 1到16 天选择日期范围,它可以正常工作。如果我选择 1到30 天,那么也没有问题。但是现在如果我选择 1st to 8 ,它会给我显示以下错误:

Server Error in '/' Application.
An error has occurred because a control with id 'ctl00$ContentPlaceHolder1$gvGridViewDemo$ctl00$ctl09$Detail20$ctl06$Detail10$ctl04$ctl10' could not be located or a different control is assigned to the same ID after postback. If the ID is not assigned, explicitly set the ID property of controls that raise postback events to avoid this error. 

使用此页面中的任何ajax,因此在日期选择中,它会获得完整回发。我还为viewstate to falseViewstateMode to disable设置了ClientId = autoIdButtonGridview。但我无法摆脱这一点。

任何人都可以帮我摆脱这个嘲笑错误吗?

P.S。我检查了链接An error has occurred because a control with id {0} could not be located or a different control is assigned to the same ID after postback并根据评论我在我的代码中有string.format()。但我已对此发表评论,但我仍面临同样的问题。

4 个答案:

答案 0 :(得分:4)

我自己解决了。我不认为这是我发现的最好的解决方案,但我回答这个问题,它可能会帮助那些想摆脱这类问题并厌倦找到确切解决方案的人。

我通过使用试用和错误方法调试技能解决了这个问题(它需要自己非常耐心)。

我做的是,我开始评论一些在页面上放置动态控件并检查结果是否生成相同错误的代码?如果是,那么您正在评论错误的代码。所以只需删除评论,按原样制作该部分并继续。

最后我发现有一些动态生成的工具提示;我习惯于在网格视图的每个单元格(RadGrid)上显示一些其他细节,正在创建此错误。在PageInit上,我清除了除法的所有控件,并通过后面的代码添加了一个网格视图。因此,每次启动请求时,它都会清除所有控件并重新添加它们。

然而,工具提示的对象(我使用RadTooltip在单元格上显示工具提示)没有从回页中的页面中清除。

所以我只是使用其单元格(网格单元格)client id + DateTime.Now.Ticks.ToString()为每个工具提示应用了一个新ID,我从这个奇怪的错误中踢出了自己。

答案 1 :(得分:0)

我看到你解决了这个问题,但如果你在RadTooltip遇到问题,将来这可能会有用,我解决了几个问题:http://www.telerik.com/help/aspnet-ajax/tooltip-troubleshooting-common-issues.html

答案 2 :(得分:0)

我也遇到了这个问题。修复它的问题是将ID值显式添加到我动态加载到屏幕上的所有Control对象上。

答案 3 :(得分:0)

当我的网格视图中有多个命令字段时,它就发生了。我将它们转换为模板字段,一切正常!