用默认按钮和更新面板扩展GridView
本文关键字:扩展 GridView 更新 默认按钮 | 更新日期: 2023-09-27 18:04:32
我试图通过在上面添加一些按钮来扩展ASP GridView控件。例如插入/删除/打印等。我必须扩展GridView控件,因为它在项目的很多地方使用。按钮和控件必须包装在UpdatePanel中,以便它可以进行部分更新。我正在尝试做这样的事情:
UpdatePanel up = new UpdatePanel();
ImageButton newButton = new ImageButton();
newButton.ImageUrl = "../Images/new.gif";
up.ContentTemplateContainer.Controls.Add(newButton);
up.ContentTemplateContainer.Controls.Add(this);
Page.Form.Controls.Add(up);
问题是我不知道把它放在哪里,我甚至不知道这是否会工作。如果我把它放在OnLoad/OnPreRender我得到这个:
"在DataBind、Init、Load、PreRender或Unload阶段不能修改控件集合。"
这个错误发生在第二次添加。
如果我把它放在CreateChildControls页面还没有创建
在这种情况下,我可能会构建自己的自定义服务器控件,继承GridView。
下面是一篇MSDN文章的链接,可以帮助您入门:演练:开发和使用自定义Web服务器控件
编辑:既然你已经创建了自定义服务器控件;我想这可能是你的问题行:Page.Form.Controls.Add(up)
尝试简单地使用Controls.Add(up)
。看起来你要做的是将更新面板添加到页面本身;当你真正应该把它添加到扩展GridView的控件集合中时