0
  • ボタン付きのjspページがあります。
  • ボタンをクリックすると、Dojo グリッドが動的に作成されます。
  • グリッドが読み込まれた後、グリッドを反復処理しています。特定の値が存在する場合は、行全体が選択されます。
  • 以下のコードを使用して達成しました。行は選択されますが、エラーが発生します。
  • エラー: 「エラー: dojo.data.ItemFileReadStore: アイテム引数が無効です」
  • dojoX.grid.DataGrid(1.7) を使用しています

動的グリッドを作成するコードは次のとおりです。

var ioArgs = {
            url: "./DynamicDBServlet",
            content: { TABLE_NAME:tableName,WHERE_CONDN:condtn,COLUMNS:gridColumnName,ACTION:'select'}, 
            handleAs: "json",
            load: function(response) {
                //alert(response["items"][0].USER_ID);
                 var tbl = document.getElementById(gridID);
                 //alert(tbl);
                  if(tbl) tbl.parentNode.removeChild(tbl);
                var gridLayout = [];
                var key;
                colmn=gridColumnName.split(',');
                var i=0;
                while(i<colmn.length)  {
                    if(colmn[i]=="STATUS"){
                        key = colmn[i];
                        gridLayout.push({
                        field: key, 
                        name: displayName[i],
                        formatter:function(opvalue){
                            //alert(opvalue);
                            opvalue = parseInt(opvalue);
                            if(opvalue==1){
                                return "Executing";}
                            if(opvalue==2){
                                return "Suspended";}
                            if(opvalue==3){
                                return "Completed";}
                            if(opvalue==4){
                                return "Aborted";}
                            if(opvalue==5){
                                return "Error";}
                            if(opvalue==6){
                                return "Terminated";}},
                        width: '200px',
                        editable: false});
                        i++;
                    }if(colmn[i]=="PRIORITY"){
                        key = colmn[i];
                        gridLayout.push({
                        field: key, 
                        name: displayName[i],
                        formatter:function(opvalue){
                            if(opvalue==1){
                                return "High";}
                            if(opvalue==8){
                                return "Normal";}
                            if(opvalue==15){
                                return "Low";}
                            },
                        width: '200px',
                        editable: false});
                        i++;
                    }if(colmn[i]=="PROCESS_METADATYPE"){
                        key = colmn[i];
                        gridLayout.push({
                        field: key, 
                        name: displayName[i],
                        formatter:function(opvalue){
                            if(opvalue==4497){
                                return "Provisioning Sub Process";}
                            if(opvalue==4496){
                                return "Provisioning Loop";}
                            if(opvalue==4494){
                                return "Main Process";}
                            },
                        width: '200px',
                        editable: false});
                        i++;
                    }if(colmn[i]=="ORDER_TYPE"){
                        key = colmn[i];
                        gridLayout.push({
                        field: key, 
                        name: displayName[i],
                        formatter:function(opvalue){
                            if(opvalue==4488){
                                return "Training Order";}
                            },
                        width: '200px',
                        editable: false});
                        i++;
                    }else{
                        key = colmn[i];
                        gridLayout.push({
                        field: key, 
                        name: displayName[i],
                        width: '200px',
                        editable: false});
                        i++;
                    }
                }
                //alert(gridLayout);
                var gridStore = new dojo.data.ItemFileWriteStore({
                    data: response
                }); 
                var dumm = dijit.byId('dynamicgrid'+tableName); 
                if(dumm) { 
                    dumm.destroy(); 
                } 

                    var finderResponse = new dojox.grid.DataGrid({
                        id:"dynamicgrid"+tableName,
                        query: { },
                        store:gridStore,
                        structure: gridLayout,
                        selectionMode: "single"
                    }, document.createElement("div"));
                    dojo.byId(parentDiv).appendChild(finderResponse.domNode);
                    //var varb=dijit.byId("finderResponseGrid"+tableName);
                    //alert(varb);
                    //varb.layout.setColumnVisibility(0, false);
                    gbshowgridFlag = true;
                    finderResponse.startup();
                    //dijit.byId('dynamicgridCWPROCESS').focus.setFocusIndex(0);
                    try{
                     for( var i=0; i < dijit.byId('dynamicgridCWPROCESS').rowCount; i++){
                         var items = dijit.byId('dynamicgridCWPROCESS').getItem(i);
                         var value=dijit.byId('dynamicgridCWPROCESS').store.getValue(items,"PROCESS_ID");
                         if(value=="2507"){
                             dijit.byId('dynamicgridCWPROCESS').selection.setSelected(i,true);

                         }
                         }
                    if(defineDbl){
                        getProcessgrid();
                    }
                }catch(e){
                    alert(e);
                }
                },
            error: function(error) {
                alert("An unexpected error occurred: " + error);
            }
    };
    var deferred = dojo.xhrPost(ioArgs);
4

2 に答える 2

0

このコードは、グリッド内の行を選択するのに役立ちます:

grid.selection.select(rowIndex);

あなたの場合:

finderResponse.selection.select(rowIndex);

これで問題が解決することを願っています。

于 2013-02-17T18:03:23.717 に答える
0
function selectRowByYourOwn(){
var row = null;

// you have to get is some have.. try onSelected='yourOwnFn', on your table tag or your div tag.
// function yourOwnFn(rowID){ row = rowID;}

grid.selection.clear();
grid.selection.setSelected(row, true);
grid.render();
}
于 2013-09-24T11:07:03.503 に答える