关于页面回发的问题

dxl0304 2012-06-22 03:05:07
.aspx

<asp:Panel ID="panelRoleList" runat="server"></asp:Panel>
<asp:Button ID="btnPowerSave" runat="server" Text="保存" onclick="btnPowerSave_Click" />

.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
foreach (DataRow dr in dt_Category.Rows)
{
Panel pal1 = new Panel();
pal1.GroupingText = "test1";

Panel pal2 = new Panel();
pal2.GroupingText = "test2";

panelRoleList.Controls.Add(pal1);
panelRoleList.Controls.Add(pal2);

}
}
}
protected void btnPowerSave_Click(object sender, EventArgs e)
{
for (int i = 0; i < panelRoleList.Controls.Count; i++)
{
Panel pl = (Panel)panelRoleList.Controls[i];
}
}

问题:
Panel pl = (Panel)panelRoleList.Controls[i];
此处出现异常:无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型“System.Web.UI.WebControls.Panel”。

调试发现:page_loads时 Panel.Controls Count 为2
Click时Panel.Controls Count 为1

个人认为可能是页面回发导致的,但具体是怎么导致的,我也不知道
还请各位了解的朋友不吝赐教,非常感谢。。
(本人菜鸟,勿喷。。)
...全文
78 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码小天王 2012-06-22
  • 打赏
  • 举报
回复
完全不需要判断 只是需要判断控件类型而已 既然是循环子控件 那么就肯定存在子控件
[Quote=引用 3 楼 的回复:]

Panel pl = (Panel)panelRoleList.Controls[i];
不能强制进行转换 要判断控件是否为空
[/Quote]
happy664618843 2012-06-22
  • 打赏
  • 举报
回复
Panel pl = (Panel)panelRoleList.Controls[i];
不能强制进行转换 要判断控件是否为空
代码小天王 2012-06-22
  • 打赏
  • 举报
回复
楼主 你动态添加的控件 在回发的时候 是不能被解析出来的
dxl0304 2012-06-22
  • 打赏
  • 举报
回复
很急,哪位高手进来看看呀

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧