EASYUI 的datagrid的單元格formatter如何顯示爲一個按鈕或者菜單

function getButtonForActionFunForCprj(value,row,index){
    var str = "";
    var title = "確認完成";
	if(....){
        //菜單
	 	var menuId = row.id;
        var menuUid = row.uuid;
        var yyy = '<a uid="'+menuId+'" uuid="'+menuUid+'" class="__zdymenu" >更多</a>';
        yyy += '<div id="__zdymenu'+row.id+'" >';
        var menuParam = new Array();
        menuParam.push(row.rprjInfoId,name);
        var menuStr = getFirstFun(row,name,name,"l-btn-icon icon-cologne-check","showDialogFun",menuParam);//菜單的下面放入按鈕的字符串
        yyy += menuStr;
        yyy += "</div>";
        yyy += "</div>";
        str += yyy;
	 }else{
         //按鈕
	     var menuParam = new Array();
         menuParam.push(row.id,row.uuid);
         var menuStr = getFirstFun(row,title,title,icon,"modifyEprjInfo",menuParam);
         str += menuStr;
	 }
	 return str;
}

/**
 * 獲取一級菜單
 * @param row 當前所在的行
 * @param title 顯示的標題
 * @param text 顯示的文字
 * @param icon 按鈕的樣式
 * @param funName 按鈕回調的函數
 * @param param 回調函數funName需要的參數
 * @returns
 */
function getFirstFun(row,title,text,icon,funName,param,menuFlag){
	if(icon){
		//加入圖標
		icon = 'l-btn-icon fas '+icon+' fa-lg font-bluelight';
	}
	var clickStr = getCallFun(funName,param);
	if(!menuFlag){
		menuFlag = "";
	}
	var str = "<a "+clickStr+" menuFlag='"+menuFlag+"' href='javascript:;' class='easyui-linkbutton l-btn l-btn-small l-btn-plain  btn-small-nt' plain='true' ";
    str += " title='"+title+"' >";
    if(icon){
    	str += "<span class='l-btn-left l-btn-icon-left'>";
    }
    str += "<span class='l-btn-text' myText='"+text+"' myIcon='"+icon+"'>"+text+"</span>";
    if(icon){
    	str += "<span class='"+icon+"'></span>";
    	str += "</span>";
    }
    str += "</a>";
    return str;
}

/**
 * 根據參數和函數名,獲取對應的函數綁定的事件的字符串
 * @param funName
 * @param param
 * @returns
 */
function getCallFun(funName,param){
	var clickStr = "onclick='"+funName+"(";
	if(param && param.length > 0){
		for(var i = 0;i < param.length;i++){
			if(i != 0){
				clickStr += ",";
			}
			if(typeof(param[i]) == 'number'){
				//如果是數字類型的參數,不要傳入字符串(如dialog的width和height傳入字符串類型會有顯示有問題)
				clickStr += ""+param[i]+"";
			}else{
				clickStr += "\""+param[i]+"\"";
			}
		}
	}
	clickStr += ");'";
	return clickStr;
}

頁面顯示如下圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章