2012-02-27 53 views
0

我看了幾篇文章,但不明白如何使用jsonReader。我想在編輯時添加隱藏主鍵。如果我讓我的權限ID editable:false或隱藏它不會編輯。如何使用jqGrid和jsonReader的主鍵

任何幫助或指向其他職位將是非常好的,非常感激。感謝

這裏是我的代碼:

$(document).ready(function() 
    { 
     $("#list").jqGrid(
     { 
      url:'Users2.cfc?method=getUsers', //CFC that will return the users 
      datatype: 'json', //We specify that the datatype we will be using will be JSON 
      colNames:['Bill To Code','User ID', 'GL_comp_key', 'Branch ID', 'Warehouse ID', 'Final Approver', 'Active', 'Primary Approver', 'Administrative','Secondary Approver','permissionID'], //Column Names 
      //The Column Model to define the data. Note you can make columns non sortable, specify width, alignment, etc. 
      colModel :[ 
       {name:'ar_bill_key',index:'ar_bill_key', width:125, sorttype:"text",editable:true,searchoptions:{sopt:['eq','lt','le','gt','ge','bw','ew','cn']}, 
        editable:true,edittype:"text",editoptions:{size:50},editrules:{required:true},formoptions:{elmprefix:"(*)"}}, 
       {name:'userID',index:'userID', width:125, align:"left",sorttype:"text",searchoptions:{sopt:['eq','bw','ew','cn']}, 
        editable:true,edittype:"text",editoptions:{size:50},editrules:{required:true},formoptions:{elmprefix:"(*)"}}, 
       {name:'gl_cmp_key',index:'gl_cmp_key', width:125, align:"left",sorttype:"text",searchoptions:{sopt:['eq','bw','ew','cn']}, 
        editable:true,edittype:"text",editoptions:{size:50},editrules:{required:true},formoptions:{elmprefix:"(*)"}}, 
       {name:'so_brnch_key',index:'so_brnch_key', width:125, align:"left",sorttype:"text",searchoptions:{sopt:['eq','bw','ew','cn']}, 
        editable:true,edittype:"text",editoptions:{size:50},editrules:{required:true},formoptions:{elmprefix:"(*)"}}, 
       {name:'so_whs_key',index:'so_whs_key', width:125,align:"left",sorttype:"text",searchoptions:{sopt:['eq','bw','ew','cn']}, 
        editable:true,edittype:"text",editoptions:{size:50},editrules:{required:true},formoptions:{elmprefix:"(*)"}}, 
       {name:'final_approver',index:'final_approver', width:125,align:"left",sorttype:"text",searchoptions:{sopt:['eq','bw','ew','cn']}, 
        editable:true,edittype:"select",editoptions:{value:"1:Yes;0:No"},editrules:{required:true},formoptions:{elmprefix:"(*)"}}, 
       {name:'active',index:'active', width:125,align:"left",sorttype:"text",searchoptions:{sopt:['eq','bw','ew','cn']}, 
        editable:true,edittype:"select",editoptions:{value:"1:Yes;0:No"},editrules:{required:true},formoptions:{elmprefix:"(*)"}}, 
       {name:'primary_approver',index:'primary_approver', width:125,align:"left",sorttype:"text",searchoptions:{sopt:['eq','bw','ew','cn']}, 
        editable:true,edittype:"select",editoptions:{value:"1:Yes;0:No"},editrules:{required:true},formoptions:{elmprefix:"(*)"}}, 
       {name:'admin',index:'admin', width:125,align:"left",sorttype:"text",searchoptions:{sopt:['eq','bw','ew','cn']}, 
        editable:true,edittype:"select",editoptions:{value:"1:Yes;0:No"},editrules:{required:true},formoptions:{elmprefix:"(*)"}}, 
       {name:'secondary_approver',index:'secondary_approver', width:130,align:"left",sorttype:"text",searchoptions:{sopt:['eq','bw','ew','cn']}, 
        editable:true,edittype:"select",editoptions:{value:"1:Yes;0:No"},editrules:{required:true},formoptions:{elmprefix:"(*)"}}, 
       {name:'permissionID',index:'permissionID',sorttype:"int",editable:true,searchoptions:{sopt:['eq','lt','le','gt','ge']}}, 
      ],//searchoptions parameter is used to limit the operators available during search 
      pager: $('#pager'), //The div we have specified, tells jqGrid where to put the pager 
      rowNum:20, //Number of records we want to show per page 
      rowList:[20,30,40,50], //Row List, to allow user to select how many rows they want to see per page 
      sortorder: "desc", //Default sort order 
      sortname: "ar_bill_key", //Default sort column 
      viewrecords: true, //Shows the nice message on the pager 
      imgpath: '/images', //Image path for prev/next etc images 
      caption: 'Permissions', //Grid Name 
      recordtext: "Record {0} - {1} of {2}",//Pager information to show 
      rownumbers: true,//Show row numbers 
      rownumWidth: "30",//Width of the row numbers column 
      sortable: true, 
      height:'auto', //I like auto, so there is no blank space between. Using a fixed height can mean either a scrollbar or a blank space before the pager 
      mtype:'POST', 
      toolbar:[true,"top"], //Shows the toolbar at the top. We will use it to display user feedback 
      //The JSON reader. This defines what the JSON data returned from the CFC should look like 
      jsonReader: { 
       root: "ROWS", //our data 
       page: "PAGE", //current page 
       total: "TOTAL", //total pages 
       records:"RECORDS", //total records 
       userdata:"USERDATA", //Userdata we will pass back for feedback 
       cell: "", //Not Used 
       ar_bill_key: "0" //Will default to first column 
       }, 
      editurl:"Users2.cfc?method=addeditUser" //The Add/Edit function call     
      }    
     ).navGrid('#pager', 
      { 
       search:true,searchtitle:"Search",//title set for hover over display 
       edit:true,edittitle:"Edit User", 
       add:true,addtitle:"Add User", 
       del:false,deltitle:"Delete User" 
      }, 
     // Edit Options. savekey parameter will keybind the Enter key to submit. 
     {editCaption:"Edit User",edittext:"Edit",closeOnEscape:true, savekey: [true,13],errorTextFormat:commonError 
      ,reloadAfterSubmit:true,bottominfo:"Fields marked with (*) are required",top:"60",left:"70",width:500}, 
     {width:500,addCaption:"Add User",edittext:"Add",closeOnEscape:true,savekey: [true,13],errorTextFormat:commonError, 
      reloadAfterSubmit:true,bottominfo:"Fields marked with (*) are required",top:"60",left:"70"}, //Add Options 
     {url:"Users2.cfc?method=delUser",caption:"Delete User",closeOnEscape:true,errorTextFormat:commonError,top:"60",left:"70", 
      reloadAfterSubmit:true}, //Delete Options 
     //Search Options. multipleSearch parameter lets it know we are going to use the new advanced search feature 
     {errorTextFormat:commonError,Find:"Search",closeOnEscape:true,caption:"Search Users",multipleSearch:true,closeAfterSearch:true} 
     );   

     //Function will be called when add/edit encounters an error. The returned message is what will be shown to user 
     function commonError(data) 
     {   
      return "Error Occured during Operation. Please try again"; 
     } 

    } 
); 
+0

奧列格,感謝您的回覆。我希望隨時隱藏權限。我找到了一種似乎可行的方法。你覺得這怎麼樣? {name:'permissionID',index:'permissionID',sorttype:「int」,hidden:true,editable:true,resizable:false,editrules:{readonly:true}}另外,如何顯示消息usaer added網格標題上的div?非常感謝!!你的帖子很棒! – Sue 2012-02-27 20:53:07

回答

1

如果我理解正確你的問題,你想只是permissionID將編輯過程中發送,但你並不需要的地方顯示出來。

我想,你原來的問題,你沒有指定哪個ID應該有網格的行。 JSON輸入應該包含id。如果您使用的jsonReadercell: ""設置您必須指定一個從兩個方面行的id:

  • 你包括在列'permissionID'的定義key: true財產。如果您不需要標記可編輯列(您可以刪除editable:true)。
  • 如果你從來沒有需要向用戶顯示列'permissionID'可以刪除'permissionID',只是包括在jsonReader財產id: "10"。如果我計算正確,則將主鍵permissionID設置爲第10位。如果permissionID的值將僅保存爲網格的行(<tr>元素)的idid將始終在所有編輯操作中發送。
+0

我遇到麻煩編輯,如果我不通過主鍵permissionID,因爲我有WHERE \t \t \t \t \t \t permissionID = #Val(Arguments.permissionID)#我的更新查詢工作。 – Sue 2012-02-27 21:04:11

+0

萬歲!我用你的ID =「10」的建議,我終於明白了這是什麼意思,並安排我的查詢來匹配它。非常感謝當我被允許給你投票時,我會做到這一點! – Sue 2012-02-27 21:10:24

+0

@Sue:不客氣!我很高興我能幫助你。如果問題解決了,您可以[「接受」](http://meta.stackexchange.com/a/5235/147495)答案。每個被接受的答案都會給你一些聲望點。獲得15點聲望後,您將有權每天投票選擇30個問題或答案。祝你好! – Oleg 2012-02-27 21:31:47