2012-02-08 52 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";