2012-02-08 23 views
1

私はjqgridを新しくしました。編集タイプがカスタムの列があります。Jqgrid、dataEventはedittype:customに対しては機能しません

一度行データを編集すると、その行をぼかして保存する(選択した行の外側をクリックすると)、この目的のためにdataEventを使用しましたが動作しません。

私はJqgridバージョン4.1を使用しています。

誰かがこの問題を解決するのに手伝ってください。

私は以下の私のコードの一部を添付しています

{ name: 'Roles', index: 'Roles', align: 'left', editable: true, 
    edittype: "custom", 
    editoptions: {custom_element: renderRoleColumn, custom_value: roleColumnValue, 
       dataEvents: [{ type: 'blur', 
           fn: function (e) { 
            alert("roles"); 
           } 
          }] 
       } 
} 

答えて

2

あなたが正しいです。 jqGridの現在の実装では、the source codeのjqGridを参照してください(options = bindEv(elem,options)は他のすべての編集タイプと同じように)dataInitまたはdataEventsを使用しないでください。問題は、それがバグだと確信していないことだけです。 jqGridのthe documentationには、実際にはedittype: "custom"の場合に実行されるすべてのステップが記述されています。

私はそれが問題であるとは思わない。あなたはcustom_elementの中に任意のバインディングを作ることができます。 renderRoleColumnroleColumnValueというコードは投稿していませんが、返されたカスタム要素にblurイベントハンドルをバインドするとうまくいきます。子として<select><input>要素と<div>を返しrenderRoleColumnカスタムフォーマッタ:

を更新しました。 <div>はフォーカスを得ることができず、blurイベントも処理しません。したがって、blurを子要素<select><input>にバインドする必要があります。コードは次のようになります

function renderRoleColumn() { 
    //... your current code which generate HTML fragment in the roleDiv as string 

    // create DOM element from the HTML fragment with jQuery wrapper 
    var $custom = $(roleDiv); 

    // make binding to children 
    $custom.find('select,input').blur(function (e) { 
     alert('blur on ' + 
      e.target.tagName.toLowerCase() + 
      ' id=' + e.target.id); 
    }); 

    return $custom[0]; // return roleDiv as DOM element 
} 
+0

こんにちは、ありがとう。 blurイベントは 'input'にのみバインドされ、 'select'にバインドされません。実際にはselectで選択されたオプションを保存したいのですが、これで助けてください。 – Divya

+0

@Divya:ようこそ!申し訳ありませんが、私は 'addRolesCounter = 0'でコードをテストしています。 '.blur'を' .focusout'に置き換え、 '.click'にフォーカスを明示的に' .focus'で設定することもできます。 '$ custom.find( 'select、input')のようなことをすることを意味します。また、 'TAB'キーを使用して '選択'または '入力'にフォーカスを設定することもできます。この場合、フォーカスが設定され、 'blur 'も有効であることを確認します。 – Oleg

+0

ありがとう、今、私はフォーカスを取得することができます。フォーカスアウトを得ることができる、私はもう一度質問がある、フォーカスアウトで、私はドロップダウンから選択されたオプションがセルに保存されます。あなたはそれを達成するのを手伝ってもらえますか?すみません、私はjqgridを初めて使い、edittypeを見つけました:カスタムは複雑です。 – Divya