Событие 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";