我创建了一个 Sharepoint WebPart,并为它提供了一个包含 Grid 的自定义 ToolPart(确切地说是 Telerik RadGrid,尽管这无关紧要)。我已经填充了网格,并创建了一个 GridButtonColumn 对象以添加到网格中:
protected override void CreateChildControls()
{
GridButtonColumn c = new GridButtonColumn();
c.ConfirmText = "Really Delete?";
c.ConfirmDialogType = GridConfirmDialogType.RadWindow;
c.ConfirmTitle = "Delete";
c.ButtonType = GridButtonColumnType.LinkButton;
c.Text = "Delete";
c.UniqueName = "DeleteColumn";
grid.Columns.Add(c);
// ...
grid.DeleteCommand += new GridCommandEventHandler(Grid_DeleteCommand);
}
网格正确呈现 - 填充了数据并存在删除按钮。
现在,当我单击任何删除按钮时,Grid_DeleteCommand()
不会触发该事件。但是,当我在网格之外添加一个随机按钮时,它的点击事件被触发:
Button b = new Button();
b.Text = "Hello World";
b.Click += new EventHandler(Button_Click);
我无法在此安装的 Sharepoint 上进行调试(或者我可以,但附加到该进程还不允许我这样做),因此这两个事件的方法只是重定向到 Google。这就是我检查事件是否触发的方式:
string AbsoluteUri ="http://www.google.com";
Page.Response.Redirect(AbsoluteUri);
我可以看到两者之间的唯一区别是,使用“删除”按钮,它嵌套在网格控件内,而使用“Hello World”按钮,没有嵌套。
Grid_DeleteCommand
当我单击网格中的按钮时,我怎么能着火?