2011-11-02 5 views
2

C#CodeBehindでCommandNameプロパティと一致するメソッドの呼び出しが正しく行われていないため、カーテンの後ろで何が起きているのか、誰がどのイベントを発生させているのか、 2つのこと。ここでExt:CommandColumnからコマンドを呼び出すと、カーテンの後ろにはどうなりますか?

は私のサンプルコードです:

<ColumnModel ID="ColumnModel1" runat="server"> 
      <Columns> 
       <ext:CommandColumn ButtonAlign="Center"> 
        <Commands> 
         <ext:GridCommand Icon="User" CommandName="SwitchToUserDetail" Text="Details"></ext:GridCommand> 
        </Commands> 
       </ext:CommandColumn> 
      </Columns> 
     </ColumnModel> 


    <DirectEvents> 
     <Command OnEvent="SwitchToUserDetail" > 
      <ExtraParams> 
       <ext:Parameter Name="ID" Value="this.selModel.getSelected().data.id" Mode="Raw" /> 
      </ExtraParams> 
     </Command> 
    </DirectEvents> 

すべては、これまで正常に動作しますが、やはり、ただ明らかにし、私の悪い英語で少し良くうまくいけば、それを説明する:

この属性

CommandName="SwitchToUserDetail" 

は私のDirectEvent

<Command OnEvent="SwitchToUserDetail" > 
     <ExtraParams> 
      <ext:Parameter Name="ID" Value="this.selModel.getSelected().data.id" Mode="Raw" /> 
     </ExtraParams> 
    </Command> 
012といくつかの接続を持っています

私のCodeBehindで、私のメソッドSwitchToUserDetailが定義されている場合は、GridCommandとは関係がなく、オブジェクトとDirectEventArgsのDirectEventArgsを取得します。

これについての説明はありますか?

答えて

2

コマンド名と、コマンド名valueによって提供されるコードビハインドのメソッドとの間の接続。あなたはExt.NETによって生成されたJavaScriptコードになります場合は、このようなものが表示されます:コマンド、記録、rowIndexに、colIndex

directEvents: { 
command: {fn:function(command,record,rowIndex,colIndex){var params=arguments; 
    Ext.net.DirectEvent.confirmRequest({ 
     extraParams: {"ID":'id'} 
     ,control:this,action:'Command'});},delay:20} 
} 

を見ての通り、あなたのDirectEventを呼び出しハンドラは、この引数があります。また、イベントを指示するために新たなパラメータ "command"を追加すると、それに応じて異なるコマンドを作成することができます。

<Command OnEvent="SwitchToUserDetail" > 
    <ExtraParams> 
     <ext:Parameter Name="ID" Value="this.selModel.getSelected().data.id" Mode="Raw" /> 
     <ext:Parameter Name="command" Value="command" Mode="Raw" /> 
    </ExtraParams> 
</Command> 

、次のようにサーバー側で、あなたがそれを読むことができます:

e.ExtraParams [ "コマンド"]

+0

オーケーそれを得たが、私はあなたがモードを入れて持っていると思います=最後の例でMode = "Value"ではなく "Raw" – Evils

+0

あなたは正しいです!ありがとうございました! – Baidaly

関連する問題