2015-10-16 14 views
0

我設法讓按鈕(名稱:「SelectStores」)顯示,但它處於默認模式下,並且與顏色和形狀中的其餘部分不匹配。如何更改這些屬性?如何修改jqgrid表單中的按鈕特徵?

謝謝。

colModel:[{name: "PCROWID", width: 60, align: "center", editable:true, hidden:true, editoptions: {readonly:true}}, 
      {name: "PCST", width: 60, align: "center", editable:true, editoptions: {readonly:true}, editrules: {required:true, number:false}}, 
      {name: "PCLSEQ", width: 60, align: "center", editable:true, editoptions: {readonly:true}, editrules: {required:true, number:true}, formatter:'number', formatoptions:{decimalPlaces: 0, defaultValue: '0'}}, 
      {name: "PCACTIVE", width: 60, align: "center", editable:true, editrules: {edithidden:true}, edittype:"checkbox", editoptions: {value:"Y:N"}}, 
      {name: "SelectStores", width: 80, align: "center", editable:true, hidden:true, editrules: {edithidden:true}, edittype:"button", editoptions: {value:"Select Stores"}}, 

回答

0

該數據集是一個對象數組。因此,您可以通過數組中的索引訪問每個對象,從第一個對象的0開始。

所以:

colModel[0] = { 
      name: "PCROWID", 
      width: 60, 
      align: "center", 
      editable: true, 
      hidden: true, 
      editoptions: { 
       readonly: true 
      } 

所以,你要訪問的對象是在第4個指標,並可以在訪問:

colModel[4] 

在那裏,每個個人的財產可以被訪問使用點符號:

colModel[4].name // this would return "Select Store" 
    colModel[4].align  // this would return "center" 
    colModel[4].editrules.edithidden // returns true 

所以,你也可以以同樣的方式分配新值:

colModel[4].align = "left" 
colmodel[4].width = 60 

請記住,這隻有在對象數組保持相同順序時纔有效。如果您將新項目添加到數組的開頭,那麼您嘗試訪問的項目將不再位於索引4處,並且突然您將編輯錯誤的項目。

所以,如果他們都是一樣的,並應具有相同的屬性,你可能要考慮做一些像一個循環,要麼規範的所有對象的所有屬性,或者找到你正在尋找一個:

for(var i = 0, length = colModel.length; i < length; i++){ 
    // set all widths to 60 
    colModel[i].width = 60; 

    // set only the "SelectStores" button alignment to "left" 
    if(colModel[i].name === "SelectStores"){ 
     colModel[i].align = "left"; 
    } 
} 

根據您的確切目的,有可能更有效的方法來做到這一點,但這將完成工作。

+0

謝謝你的詳細答覆。這有助於我理解jqgrid結構。我有一個後續問題。代碼示例在哪裏:(「colModel [4] .align =」left「」)你提供的是整體格式? –

0

我確實需要澄清我的問題。我試圖修改的按鈕不在網格中,而是在編輯窗體中。該列隱藏在網格中。

我確實找到了一個解決方案,那就是我的代碼的編輯部分,我可以直接使用編輯表單。

這裏是我的解決方案:

$('#SelectStores').click(function() { 
    ShowExtendedData(); 
}).addClass("fm-button ui-state-default ui-corner-all");