使用默认按钮和更新面板扩展GridView

时间:2011-08-05 14:03:10

标签: c# asp.net ajax gridview datagrid

我试图通过在其上面添加一些按钮来扩展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中,页面尚未创建。

请给我一些指示。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我可能会构建自己的继承自GridView的自定义服务器控件。

以下是可以帮助您入门的MSDN文章的链接:Walkthrough: Developing and Using a Custom Web Server Control

修改

因为您已经在创建自定义服务器控件;我认为这可能是您的问题:Page.Form.Controls.Add(up)

尝试使用Controls.Add(up)。您尝试做的是将更新面板添加到Page本身;什么时候应该将它添加到扩展GridView的控件集合