1

我创建了一个 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当我单击网格中的按钮时,我怎么能着火?

4

1 回答 1

1

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

添加这一行应该可以解决问题:

c.CommandName = "Delete";
于 2012-02-08T18:25:09.303 回答