easyui datagrid行中點擊a標簽鏈接,行被選中,但是獲取不到對應的參數


easyui中使用比較多的就是datagrid了,表格中添加連接,點擊跳轉,為比較常用的方式;往往在點及標簽后調用getSeleted方法會失效;
一.初始代碼:
{field: 'id' ,title : '操作' ,align: 'center' ,width: '10%' ,
    formatter: function (value,row){
        return   "<a onclick='show()' > 查看 </a>" ;
    }
},
function show(){
     var select = $( '#targetTable' ).datagrid( "getSelected" );
     var selects = $( '#targetTable' ).datagrid( "getSelections" );
     /*獲取不到正在點擊的行*/
}
二.起因分析:
easyui中只有在觸發選中行之后調用,getSeleted 和 getSelections 才能取到對應的結果值;先觸發a標簽方法,還是先觸發選擇行,
測試代碼如下:
{field: 'id' ,title : '操作' ,align: 'center' ,width: '10%' ,
    formatter: function (value,row){
        return   "<a onclick='show()' > 查看 </a>" ;
    }
},
onClickRow : function (index,data){
    alert( 'clickRow' );
}
function show(){
    alert( "clickA" );
}
點擊頁面按鈕后你會發現先調用的show方法,后觸發的onClickRow事件,
所以在show方法中想要獲取選中的行是不可行的方式;
三.解決方式:
在調用的時候進行值得傳遞;
在進行a標簽拼接的過程中在對應的方法中傳入參數;
四.解決代碼如下:
{field: 'id' ,title : '操作' ,align: 'center' ,width: '10%' ,
    formatter: function (value,row){
        return  "<a onclick=\"show('" +row.id+ "')\" > 查看 </a>" ;
    }
},
function show(id){
     alert(id);
}
五.備注:
因使用easyui不是太多,更多的時候是幫別人解決問題的時候遇到測試的,
以上觀點只為個人觀點,非最優解決方案,歡迎大神給出更優解決方案,多多交流才有進步;
有新問題請留言,大家一起探討一起進步;


免責聲明!

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



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