2011-01-31 8 views
3

私はグリッドビューを持っています。マークアップはこのようなものです...更新ボタンがイベントハンドラを編集します

マイコードビハインド
<asp:GridView ID="gvwServers" runat="server" class="gvwServers" 
AutoGenerateColumns="false" OnRowEditing="gvwServers_Edit" 
onrowcancelingedit="gvwServers_Cancelling" onrowdeleting="gvwServers_Deleting" 
onrowupdated="gvwServers_Updated" onrowupdating="gvwServers_Updating" 
AutoGenerateEditButton=true AutoGenerateDeleteButton=true> 

    <columns> 
    <asp:CommandField ButtonType="Button" EditText="Edit" ShowEditButton="true" /> 
    <asp:CommandField ButtonType="Button" EditText="Delete" ShowDeleteButton="true" /> 

    ...Bound fields and template fields etc... 

protected void gvwServers_Edit(object sender, GridViewEditEventArgs e) 
{ 
    gvwServers.EditIndex = e.NewEditIndex; 
    gvwServers.DataBind(); 
} 
protected void gvwServers_Updated(object sender, GridViewUpdatedEventArgs e) 
{ 
    gvwServers.DataBind(); 
} 

protected void gvwServers_Updating(object sender, GridViewUpdateEventArgs e) 
{ 
    gvwServers.DataBind(); 
} 
protected void gvwServers_Deleting(object sender, GridViewDeleteEventArgs e) 
{ 
    gvwServers.DataBind(); 
} 
protected void gvwServers_Cancelling(object sender, GridViewCancelEditEventArgs e) 
{ 
    e.Cancel = true; 
    gvwServers.EditIndex = -1; 
    gvwServers.DataBind(); 
} 

...これを持っている事は、削除、これらのルーチンの火正しくつまり編集のほとんどがキャンセルということです。 を除いて、更新ボタンをクリックするとgvwServers_Edit()が発生します。なぜこうなった?更新ボタンをクリックして火災を発生させるにはどうすればいいですかgvwServers_Updating()

更新:問題が解決しましたhere。 paramsは、同様の機能が(object sender, GridViewUpdatedEventArgs e)のparamsを持っている必要があります更新するとあなたは常に関数にイベントを再マッピングすることができ

答えて

0

..

は、まあ、ほとんど...「編集」イベントにのみ(object sender, GridViewCancelEditEventArgs e)を持つ関数にマップすることができます...

あらかじめ作成されたイベント処理機能を使用するか、独自のキーを作成して、もう一度「e」パラメータタイプにすることができます。

Edit()イベントとUpdating()イベントの両方に共通の機能を使用する場合は、それらのイベントが発生したときにハンドラによって呼び出される別の関数にそのコードを挿入します。

+0

'onrowupdating =" gvwServers_Updating "と関数' gvwServers_Updating(オブジェクト送信者、GridViewUpdateEventArgs e) 'を定義しても、イベントは関数にマップされませんか?私は 'gvwServers_Edit'関数がなぜ更新をクリックすると起動するのか理解していません。 –

関連する問題