Sharepoint Toolpart事件未触发

时间:2012-02-08 16:47:53

标签: sharepoint events web-parts toolpart

我创建了一个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的这个安装(或者我可以,但是附加到进程还不允许我这样做),所以这两个事件的方法只是重定向到谷歌。这就是我检查事件是否触发的方式:

    string AbsoluteUri ="http://www.google.com";
    Page.Response.Redirect(AbsoluteUri);

我可以在两者之间看到的唯一区别是,使用“删除”按钮,它嵌套在Grid控件内,而使用“Hello World”按钮,则没有嵌套。

当我点击网格中的按钮时,如何能够Grid_DeleteCommand点火?

1 个答案:

答案 0 :(得分:1)

使用Telerik Grid控件,您应在代码中指定按钮CommandName

添加此行应解决问题:

c.CommandName = "Delete";