easyui datagrid列使用按鈕的一些心得(轉)


http://blog.csdn.net/sskicgah/article/details/16939959

以前,用easyui的datagrid,有時候會用到一些操作選項,比如代碼如下:

[javascript]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. $('#datagrid').datagrid({  
  2.     border:false,  
  3.     fitColumns:true,  
  4.     singleSelect: true,  
  5.     url:url,  
  6.     columns:[[  
  7.         {field:'projectname',title:'應用名',width:80},  
  8.         {field:'projectpackage',title:'應用包名',width:25}  
  9.         {field:'opt',title:'操作',width:50,align:'center',  
  10.             formatter:function(value,rec){  
  11.                 var btn = "<a class='editcls' onclick='editRow('"+rec.projectname+"','"+rec.projectpackage+"')' href='javascript:void(0)>'編輯</a>";  
  12.                 return btn;  
  13.             }  
  14.         }  
  15.     ]]  
  16. });  

這個代碼的效果就是最后一列顯示一個鏈接,點擊鏈接觸發編輯事件,把兩個參數傳進去編輯。

后來,發現了問題,就是,當變量中含有空格時,html的解析會導致該事件失敗,瀏覽器會自動補全雙引號,空格導致了頁面中""部分把雙引號解析錯誤了。之后,一個同事說他寫這種代碼,一般按照正常的html規則來寫,就不會出錯了,也就是,html頁面中出現雙引號的部分就用雙引號,於是,我寫js引號的風格也就改成了用單引號來當做字符串的引號。修改后代碼如下:

[javascript]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. $('#datagrid').datagrid({  
  2.     border:false,  
  3.     fitColumns:true,  
  4.     singleSelect: true,  
  5.     url:url,  
  6.     columns:[[  
  7.         {field:'projectname',title:'應用名',width:80},  
  8.         {field:'projectpackage',title:'應用包名',width:25}  
  9.         {field:'opt',title:'操作',width:50,align:'center',  
  10.             formatter:function(value,rec){  
  11.                 var btn = '<a class="editcls" onclick="editRow(\''+rec.projectname+'\',\''+rec.projectpackage+'\')" href="javascript:void(0)">編輯</a>';  
  12.                 return btn;  
  13.             }  
  14.         }  
  15.     ]]  
  16. });  

再之后,覺得把鏈接改成用easyui的按鈕會好一些,就找了各種辦法,最后發現,只要把按鈕部分的html代碼用js初始化就可以得到按鈕了,代碼如下:

[javascript]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. $('#datagrid').datagrid({  
  2.     border:false,  
  3.     fitColumns:true,  
  4.     singleSelect: true,  
  5.     url:url,  
  6.     columns:[[  
  7.         {field:'projectname',title:'應用名',width:80},  
  8.         {field:'projectpackage',title:'應用包名',width:25}  
  9.         {field:'opt',title:'操作',width:50,align:'center',  
  10.             formatter:function(value,rec){  
  11.                 var btn = '<a class="editcls" onclick="editRow(\''+rec.projectname+'\',\''+rec.projectpackage+'\')" href="javascript:void(0)">編輯</a>';  
  12.                 return btn;  
  13.             }  
  14.         }  
  15.     ]],  
  16.     onLoadSuccess:function(data){  
  17.         $('.editcls').linkbutton({text:'編輯',plain:true,iconCls:'icon-edit'});  
  18.     }  
  19. });  

主要就是在onLoadSuccess做的初始化工作,就可以顯示出按鈕的效果了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM