2012-02-08 27 views
1

我已经创建了一个Sharepoint WebPart,并且给了它一个自定义ToolPart,它包含一个Grid(Telerik RadGrid,确切地说,虽然这是不相关的)。我已填充网格,并创建了一个GridButtonColumn对象添加到网格中:Sharepoint Toolpart事件不会触发

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()事件不会被触发。然而,当我添加了网格外的任意按钮,它的Click事件被触发:

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

回答

1

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

添加此行应该解决的问题:

c.CommandName = "Delete";