2

DOJO Datagrid を稼働させています。itemFileWriteStore に基づいています。

フォーマッタ関数を使用して、OnClick 関数を含むボタンを追加しました

  1. 属性「work_id」を取得します(ストアにあります)
  2. エントリを削除するために Ajax 呼び出しを行う
  3. ストアから削除してグリッドを更新する

コードは次のとおりです。

    //BUTTON-FORMATTER
     function buttonFormatterRemove(){
        var w = new Button({
            label: "Löschen",
            iconClass: "dijitEditorIcon deleteIcon",
            showLabel: false,
            onClick: function() {
                    console.log(this);
                    if (confirm("Datensatz wirklich löschen?")){

                        var item = grid.selection.getSelected();
                        var work_id = grid.store.getValue(item[0], "work_id");
                        //alert(work_id);

                        //FIRE REQUEST
                            request.post("<?php echo site_url('work/delete'); ?>/"+work_id, {

                              }).then(function(text){
                                    if(text ==  1){
                                                console.log("Entry with ID"+work_id+" deleted!")
                                                workStore.deleteItem(item[0]); 
                                                grid.startup();
                                    } else alert("Es ist ein Fehler aufgetreten");
                                });     
                    }          

            }
        });
        w._destroyOnRemove=true;
        return w;
    }

これまでのところとても良いです...うまくいきます!ただし、以前にデータグリッドをクリックしたときのみ。どこをクリックしても問題ありません。

ページを更新してボタンを直接クリックすると、次のようにスローされます。

Uncaught Error: dojo.data.ItemFileWriteStore: Invalid item argument. 

特定の行で work_id へのハンドルを取得する方法を知っている人はいますか?

前もって感謝します!AFX

4

1 に答える 1

3

私はそれを自分で修正することができました:

フォーマッタにはオプションの引数があることに気付きました:

  //BUTTON-FORMATTER
     function buttonFormatterRemove(col, rowIndex){

これらの引数を使用して、行のハンドルを取得できました。

        var rowdata = this.grid.getItem(rowIndex);
        var work_id = rowdata['work_id'];

このブログ投稿は私を大いに助けてくれました: http://documentumcookbook.wordpress.com/2010/08/06/dojo-datagrid-combining-field-values-in-formatter/

とにかく、ありがとう!

于 2012-10-30T14:44:26.933 に答える