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;
}

页面显示如下图:

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