私はSharepointWebPartを作成し、それにグリッドを含むカスタム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);
2つの違いは、[削除]ボタンを使用するとグリッドコントロール内にネストされるのに対し、[HelloWorld]ボタンを使用するとネストされないことだけです。
Grid_DeleteCommand
グリッドのボタンをクリックすると、どうすれば火をつけることができますか?