Событие Sharepoint Toolpart не стреляет

Я создал Sharepoint WebPart и дал ему пользовательскую ToolPart, которая включает в себя Grid (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);

Единственное различие, которое я вижу между ними, заключается в том, что с помощью кнопки "Удалить" он вложен в элемент управления Grid, тогда как с помощью кнопки "Hello World" вложения нет.

Как бы я мог иметь Grid_DeleteCommand огонь при нажатии на кнопку в сетке?

1 ответ

Решение

Используя элемент управления Telerik Grid, вы должны указать кнопки CommandName в вашем коде.

Добавление этой строки должно решить проблему:

c.CommandName = "Delete";
Другие вопросы по тегам